Stephen,
I think it is... to some extent at least
Both moduleA and moduleB have this parent block
<parent>
<groupId>rootGroupId</groupId>
<artifactId>rootArtifactId</artifactId>
<version>${rootGroupId}</version>
</parent>
That following property <rootGroupId>rootVersion</rootGroupId> is correctly
parsed into
<parent>
<groupId>rootGroupId</groupId>
<artifactId>rootArtifactId</artifactId>
<version>rootVersion</version>
</parent>
which makes the build be successful if started from the root.
----- Original Message ----
From: Stephen Connolly <[email protected]>
To: Maven Users List <[email protected]>
Sent: Wed, October 28, 2009 11:19:17 PM
Subject: Re: maven doesn't filter dependencies defined in pom
property substitution is not supported in
/project(/parent)?/version
2009/10/29 Pepe Perez <[email protected]>
> Hello,
>
> This is the situation I'm in.
>
> I have this structure
>
> pom.xml (root)
> |_ pom.xml (module A)
> |_ pom.xml (module B)
>
> These are (excerpts) of the poms
>
> pom.xml (root)
> <groupId>rootGroupId</groupId>
> <artifactId>rootArtifactId</artifactId>
> <packaging>pom</packaging>
> <version>${rootGroupId}</version>
>
> <modules>
> <module>moduleA</module>
> <module>moduleB</module>
> </modules>
>
> <properties>
> <moduleAGroupId>1.0-SNAPSHOT</moduleAGroupId>
> <moduleBGroupId>1.0-SNAPSHOT</moduleBGroupId>
> <rootGroupId>rootVersion</rootGroupId>
> </properties>
>
> pom (module A)
>
> <parent>
> <groupId>rootGroupId</groupId>
> <artifactId>rootArtifactId</artifactId>
> <version>${rootGroupId}</version>
> </parent>
>
> <groupId>moduleAGroupId</groupId>
> <artifactId>moduleAArtifactId</artifactId>
> <packaging>pom</packaging>
> <version>${moduleAGroupId}</version>
>
> pom (module B)
>
> <parent>
> <groupId>rootGroupId</groupId>
> <artifactId>rootArtifactId</artifactId>
> <version>${rootGroupId}</version>
> </parent>
>
> <groupId>moduleBGroupId</groupId>
> <artifactId>moduleBArtifactId</artifactId>
> <packaging>pom</packaging>
> <version>${moduleBGroupId}</version>
>
> <dependencies>
> <dependency>
> <groupId>moduleAGroupId</groupId>
> <artifactId>moduleAArtifactId</artifactId>
> <version>${moduleAGroupId}</version>
> <dependency>
> </dependency>
>
> cd root
> mvn install
>
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESSFUL
> [INFO]
> ------------------------------------------------------------------------
>
> cd moduleB
> mvn install
>
> [WARNING] Unable to get resource
> 'moduleAGroupId:moduleAArtifactId:${moduleAGroupId}'
> from repository central (http://repo1.maven.org/maven2): Error
> transferring file: Server returned HTTP response code: 500 for URL:
> http://<pom_maven_repo_location>
> ------------------------------------------------------------------------
> [ERROR] BUILD ERROR
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Error building POM (may not be this project's POM).
>
>
> Project ID: moduleB
>
> Reason: Cannot find parent: moduleA pom for project: moduleB
>
> This is happening because when building moduleA its pom file is
> installed in the maven repo without filtering, i.e, as it is with ${}.
> When the pom is retrieved to satisfy moduleB dependency on moduleA it's
> retrieved as
>
> <groupId>moduleAGroupId</groupId>
> <artifactId>moduleAArtifactId</artifactId>
> <packaging>pom</packaging>
> <version>${moduleAGroupId}</version>
>
> where ${moduleAGroupId} is not instanciated, hence the error.
>
> My question is:
> 1. Could I force maven to store the pom files **filtered** or
> 2. How can maven be forced to instantiate ${moduleAGroupId} upon
> retrieval from the maven repo so moduleB dependency can be satisfied
> 3. What other alternative do I have to solve this scenario without
> giving up using ${} in <version>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]