2009/10/29 Pepe Perez <[email protected]>

> 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
>

actually that property is not parsed when building from the root...

(short answer, there is a more long and technical answer which you are not
interested in) ;-)

<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]
>
>

Reply via email to