If you add

<relativePath>../pom.xml</relativePath>

Into the parent section of child-alpha, does it resolve any issue your
having? Specifically with having to do mvn -N install on the parent
1st.

On 11 April 2012 16:14, Brain Dump <braindump2...@gmail.com> wrote:
> I was able to compile with no problems on 2.2.1. The only pom.xml changes I
> had to make to get this (almost) working on 3.0.4 was to add version
> numbers for plugins that didn't have them specified, move plugins under
> <reporting></reporting> into <build></build>, and run mvn -N install on the
> parent pom -- although that's what I'm trying to avoid.
>
> I don't know if the issues you're running into are related, or caused by
> something else.
>
> Any thoughts from anyone about either Mike's issues, or mine?
>
> Thanks!
>
> On Tue, Apr 10, 2012 at 12:37 PM, mike digioia <mpd...@gmail.com> wrote:
>
>> Hi,
>>
>> I just posted a similar issue I am having with the same kind of errors. Did
>> you ever get this to compile on the 2.2.1? I have built two machines, one
>> with 2.2.1 and the other one with 3.0.4. I have different problems with
>> each. Main issue with 3.0.4 is it could not locate some of my dependency
>> jars. So I copied them from the 2.2.1 release system. But still issues.
>>
>> The other main issue is using extension to java/javax with the jmdns.jar.
>> So I modified the classes inside this jar to avoid the problem but still
>> have issues. On the 2.2.1 system it does not see my jar, even though it is
>> inside the pom and was successful with the mvn install-file command.
>>
>> On Tue, Apr 10, 2012 at 12:19 PM, Brain Dump <braindump2...@gmail.com
>> >wrote:
>>
>> > Hi everyone,
>> >
>> > I'm trying to upgrade my project from Maven 2.2.1 to Maven 3.0.4 but am
>> > running into problems with a dependency resolution. I spent a full day
>> > trying to research this by looking through Maven documentation and
>> similar
>> > posts, but I'm still stuck. I posted on stackoverflow (
>> > http://stackoverflow.com/q/10092772/1324379) but realized that this
>> Maven
>> > User List might be a better place to ask for help. Hope that's okay, and
>> > thanks in advance for your help.
>> >
>> > My project structure is as follows:
>> >
>> >    pom.xml (acme-parent)
>> >    child-alpha
>> >    +-----> pom.xml
>> >
>> > In addition, I have the following files in my own repository:
>> >
>> >
>> >
>> http://maven.my-own-repo.com/acme/child-dep-jdk15/maven-metadata-local.xml
>> >
>> >
>> >
>> http://maven.my-own-repo.com/acme/child-dep-jdk15/1.0/child-dep-jdk15-1.0.jar
>> >
>> >
>> >
>> http://maven.my-own-repo.com/acme/child-dep-jdk15/1.0/child-dep-jdk15-1.0.pom
>> >
>> > child-alpha/pom.xml in turn has a profile dependency on my own
>> > acme:child-dep-jdk15, which has been separately built into a jar file and
>> > has its own .pom file specifying a parent that is the same acme-parent
>> > parent as child-alpha.
>> >
>> > Here are excerpts from the relevant files:
>> >
>> > acme-parent pom.xml:
>> >
>> >    <?xml version="1.0" encoding="UTF-8"?>
>> >    <project>
>> >        <modelVersion>4.0.0</modelVersion>
>> >        <groupId>acme</groupId>
>> >        <artifactId>acme-parent</artifactId>
>> >        <name>Acme Parent Project</name>
>> >        <version>1</version>
>> >        <packaging>pom</packaging>
>> >
>> >        <properties>...</properties>
>> >
>> >        <modules>
>> >            <module>child-alpha</module>
>> >        </modules>
>> >
>> >        <repositories>
>> >            <repository>
>> >                <id>acme-repo</id>
>> >                <url>http://maven.my-own-repo.com</url>
>> >            </repository>
>> >            <repository>
>> >                <id>central</id>
>> >                <url>http://repo1.maven.org/maven2</url>
>> >            </repository>
>> >        </repositories>
>> >
>> >        <pluginRepositories>...</pluginRepositories>
>> >
>> >        <build>
>> >          <plugins>...</plugins>
>> >        </build>
>> >
>> >        <dependencies>...</dependencies>
>> >    </project>
>> >
>> >
>> > child-alpha pom.xml:
>> >
>> >    <project>
>> >        <modelVersion>4.0.0</modelVersion>
>> >        <parent>
>> >            <groupId>acme</groupId>
>> >            <artifactId>acme-parent</artifactId>
>> >            <version>1</version>
>> >        </parent>
>> >        <artifactId>child-alpha</artifactId>
>> >        <name>Child Alpha Project</name>
>> >        <version>1.0</version>
>> >        <packaging>jar</packaging>
>> >
>> >        <scm>...</scm>
>> >
>> >        <properties>...</properties>
>> >
>> >        <build>
>> >          <resources>...</resources>
>> >          <plugins>...</plugins>
>> >        </build>
>> >
>> >        <profiles>
>> >            <profile>
>> >                <id>jdk15</id>
>> >                <activation>
>> >                    <activeByDefault>true</activeByDefault>
>> >                    <jdk>1.5</jdk>
>> >                </activation>
>> >                <dependencies>
>> >                    <dependency>
>> >                        <groupId>acme</groupId>
>> >                        <artifactId>child-dep-jdk15</artifactId>
>> >                        <version>1.0</version>
>> >                    </dependency>
>> >                </dependencies>
>> >            </profile>
>> >        </profiles>
>> >
>> >        <dependencies>...</dependencies>
>> >    </project>
>> >
>> >
>> > child-dep-jdk15-1.0.pom:
>> >
>> >    <project>
>> >        <modelVersion>4.0.0</modelVersion>
>> >        <parent>
>> >            <groupId>acme</groupId>
>> >            <artifactId>acme-parent</artifactId>
>> >            <version>1</version>
>> >        </parent>
>> >        <groupId>acme</groupId>
>> >        <artifactId>child-dep-jdk15</artifactId>
>> >        <name>Acme Child Dependency</name>
>> >        <version>1.0</version>
>> >        <packaging>jar</packaging>
>> >
>> >        <build>...</build>
>> >
>> >        <dependencies>...</dependencies>
>> >    </project>
>> >
>> > When I tried to build child-alpha (while in the child-alpha directory), I
>> > ran the following command:
>> >
>> >    mvn -U -e clean install
>> >
>> > And I got the following log messages and stack trace (extraneous messages
>> > removed):
>> >
>> >    Downloading:
>> > http://maven2.my-own-repo.com/acme/acme-parent/1/acme-parent-1.pom
>> >    Downloading:
>> > http://repo1.maven.org/maven2/acme/acme-parent/1/acme-parent-1.pom
>> >
>> >    [...]
>> >
>> >    [ERROR] Failed to execute goal on project child-alpha: Could not
>> > resolve dependencies for project acme:child-alpha:jar:1.0: [...]
>> >
>> >    Caused by: org.apache.maven.project.DependencyResolutionException:
>> > Could not resolve dependencies for project acme:child-alpha:jar:1.0:
>> [...]
>> >
>> >    Caused by:
>> > org.sonatype.aether.collection.DependencyCollectionException: Failed to
>> > collect dependencies for [...]
>> >        at
>> >
>> >
>> org.sonatype.aether.impl.internal.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:258)
>> >        at
>> >
>> >
>> org.sonatype.aether.impl.internal.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:308)
>> >        at
>> >
>> >
>> org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:150)
>> >        ... 23 more
>> >    Caused by: org.sonatype.aether.resolution.ArtifactDescriptorException:
>> > Failed to read artifact descriptor for acme:child-dep-jdk15:jar:1.0
>> >        at
>> >
>> >
>> org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:331)
>> >        at
>> >
>> >
>> org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:186)
>> >        at
>> >
>> >
>> org.sonatype.aether.impl.internal.DefaultDependencyCollector.process(DefaultDependencyCollector.java:412)
>> >        at
>> >
>> >
>> org.sonatype.aether.impl.internal.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:240)
>> >        ... 25 more
>> >    Caused by:
>> > org.apache.maven.model.resolution.UnresolvableModelException: Could not
>> > find artifact acme:acme-parent:pom:1 in acme-repo (
>> > http://maven.my-own-repo.com)
>> >        at
>> >
>> >
>> org.apache.maven.repository.internal.DefaultModelResolver.resolveModel(DefaultModelResolver.java:126)
>> >        at
>> >
>> >
>> org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:813)
>> >        at
>> >
>> >
>> org.apache.maven.model.building.DefaultModelBuilder.readParent(DefaultModelBuilder.java:664)
>> >        at
>> >
>> >
>> org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:310)
>> >        at
>> >
>> >
>> org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:232)
>> >        at
>> >
>> >
>> org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:322)
>> >        ... 28 more
>> >    Caused by: org.sonatype.aether.resolution.ArtifactResolutionException:
>> > Could not find artifact acme:acme-parent:pom:1 in acme-repo (
>> > http://maven.my-own-repo.com)
>> >        at
>> >
>> >
>> org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:538)
>> >        at
>> >
>> >
>> org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:216)
>> >        at
>> >
>> >
>> org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:193)
>> >        at
>> >
>> >
>> org.apache.maven.repository.internal.DefaultModelResolver.resolveModel(DefaultModelResolver.java:122)
>> >        ... 33 more
>> >    Caused by: org.sonatype.aether.transfer.ArtifactNotFoundException:
>> > Could not find artifact acme:acme-parent:pom:1 in acme-repo (
>> > http://maven.my-own-repo.com)
>> >        at
>> >
>> >
>> org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:947)
>> >        at
>> >
>> >
>> org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:941)
>> >        at
>> >
>> >
>> org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:669)
>> >        at
>> >
>> >
>> org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:60)
>> >        at
>> >
>> >
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>> >        at
>> >
>> >
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>> >        at java.lang.Thread.run(Thread.java:680)
>> >
>> > While using Maven 2, I've never needed the acme-parent pom.xml at the
>> > following location:
>> > http://maven2.my-own-repo.com/acme/acme-parent/1/acme-parent-1.pom
>> >
>> > The reason we don't have the parent pom.xml on our own repo is is that we
>> > have a script used when creating version control branches that changes
>> some
>> > <properties></properties> values in acme-parent pom.xml depending on
>> which
>> > branch we're on, so it would be complicated to put that pom.xml in the
>> repo
>> > and keep it correctly updated for all the different branches we're trying
>> > to build concurrently with our continuous integration server.
>> >
>> > In Maven 2, when doing builds of child-alpha, Maven would have no trouble
>> > finding acme-parent pom.xml one directory up, i.e. with a relative path
>> of
>> > ../pom.xml, so it would never try going to my repositories to find it.
>> > Having the parent pom.xml in my local checkout only and not having it in
>> > the repo worked fine in Maven 2.
>> >
>> > However, when I tried building child-alpha under Maven 3.0.4, the
>> exception
>> > above occurred. At first, I thought I needed to explicitly set the
>> > relativePath within the <parent></parent> tags at the top of
>> child-alpha's
>> > pom.xml, but that didn't fix it -- and acme-parent's pom.xml is indeed
>> > already in the default relativePath of ../pom.xml, so there's no need to
>> > explicitly set it.
>> >
>> > Then, I tried commenting out the child-dep-jdk15 dependency within the
>> > <profiles></profiles> section of child-alpha's pom.xml. The child-alpha
>> > maven build completes successfully with this dependency commented out.
>> >
>> > I don't understand why child-alpha won't build in Maven 3 when the
>> > child-dep-jdk15 dependency is in place. If Maven was able to correctly
>> find
>> > the acme-parent pom.xml initially (per the <parent></parent> block at the
>> > top), why is it now trying to download it from the repos when processing
>> > the child-dep-jdk15 dependency? Have I configured something incorrectly,
>> > and if so, how should I fix it?
>> >
>> > One other thing: if I first run `mvn -N install` in the same directory as
>> > acme-parent's pom.xml, and then try building child-alpha, then the
>> > child-alpha build succeeds, even when keeping the dependency
>> > child-dep-jdk15 in the code. After I run that command, I'm able to verify
>> > acme-parent-1.pom is in my local .m2 directory.  While this workaround
>> may
>> > be okay for individual developers, it'd be a problem for our continuous
>> > integration server, which needs to be able to run concurrent builds for
>> > different branches.
>> >
>> > I'd strongly prefer not to have to reconfigure my repository to host the
>> > acme-parent pom.xml due to the version control branching changes I've
>> > mentioned above.
>> >
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to