It always puzzles me that maven does not resolve the property when
building in the individual module vs. it's able to do so when building
from the parent level. The property is defined in the "settings.xml",
should maven pick up and resolve it when building from inside of
individual modules?

-----Original Message-----
From: Wayne Fay [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 12, 2007 8:59 AM
To: Maven Users List
Subject: Re: Parametrisizing artifact version numbers

Have you considered the release plugin?

Wayne

On 9/12/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> 
> Hi!
> I'm working on a few different maven projects with several modules in
each.
> Most of the modules have dependencies to other modules within the same
> project and also to other projects. Since the development in most of
these
> projects go in parallell, most of the dependencies are towards
snapshot
> versions.
> 
> Now, my problem is that when I want to make a release, I have to go
through
> 30+ poms and replace snapshot versions with the new versions, check in
the
> new poms, tag, and then I have to replace the versions to new snapshot
> versions... A lot of work, and it's easy to make a mistake.
> 
> So, I'm trying to put the version numbers in properties instead, so I
only
> have to update the properties of the parent pom in each project.
> 
> Here's a few sample poms of two projects, where "myotherproject"
depends on
> "myproject":
> 
> <!-- parent pom for myproject -->
> <project xmlns="http://maven.apache.org/POM/4.0.0";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/maven-v4_0_0.xsd";>
>       <modelVersion>4.0.0</modelVersion>.
>       <groupId>my.project</groupId>
>       <version>${my.project.version}</version>
>       <artifactId>myparentpom</artifactId>
>       <packaging>pom</packaging>
>       <modules>
>             <module>myjar</module>
>       </modules>
>       <properties>
>             <my.project.version>1.2-SNAPSHOT</my.project.version>
>       </properties>
> </project>
> 
> <!-- jar module pom for myproject -->
> <project xmlns="http://maven.apache.org/POM/4.0.0";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/maven-v4_0_0.xsd";>
>       <modelVersion>4.0.0</modelVersion>.
>       <groupId>my.project</groupId>
>       <version>${my.project.version}</version>
>       <artifactId>myjar</artifactId>
>       <packaging>jar</packaging>
>       <parent>
>             <groupId>my.project</groupId>
>             <artifactId>myparentpom</artifactId>
>             <version>${my.project.version}</version>
>       </parent>>
> </project>>
> 
> <!-- parent pom for myotherproject -->
> <project xmlns="http://maven.apache.org/POM/4.0.0";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/maven-v4_0_0.xsd";>
>       <modelVersion>4.0.0</modelVersion>.
>       <groupId>my.other.project</groupId>
>       <version>${my.other.project.version}</version>.
>       <artifactId>myotherparentpom</artifactId>
>       <packaging>pom</packaging>
>       <modules>
>             <module>myotherjar</module>
>       </modules>
>       <properties>
>             <my.project.version>1.2-SNAPSHOT</my.project.version>
> 
> <my.other.project.version>1.1-SNAPSHOT</my.other.project.version>
>       </properties>
> </project>
> 
> <!-- jar module pom for myotherproject -->
> <project xmlns="http://maven.apache.org/POM/4.0.0";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/maven-v4_0_0.xsd";>
>       <modelVersion>4.0.0</modelVersion>.
>       <groupId>my.other.project</groupId>
>       <version>${my.other.project.version}</version>.
>       <artifactId>myotherjar</artifactId>}
>       <packaging>jar</packaging>
>       <parent>
>             <groupId>my.other.project</groupId>
>             <artifactId>myotherparentpom</artifactId>
>             <version>${my.other.project.version}</version>
>       </parent>>
>       <dependencies>.
>             <dependency>>.
>                   <groupId>my.project</groupId>
>                   <artifactId>myjar</artifactId>
>                   <version>${my.project.version}</version>
>             </dependency>
>       </dependencies>.
> </project>
> 
> 
> Now, I can succesfully build myproject, but when I build
myotherproject I
> get this error:
> 
> [INFO]
>
------------------------------------------------------------------------
> [ERROR] BUILD ERROR
> [INFO]
>
------------------------------------------------------------------------
> [INFO] Failed to resolve artifact.
> 
> GroupId: my.project
> ArtifactId: myparentpom
> Version: ${my.project.version}
> 
> Reason: Unable to download the artifact from any repository
> 
>   my.project:myparentpom:pom:${my.project.version}
> 
> from the specified remote repositories:
>   central (http://repo1.maven.org/maven2).
> 
> 
> When I look into my local repository I can see that the files and
> directories of myproject correctly has the 1.2-SNAPSHOT version. But
when I
> look inside the saved poms in the repo I can see that they still
contain
> the ${my.project.version} variable, and it seems that maven is unable
to
> dereference that variable when resolving the dependency.
> 
> So, am I missing something here? Do you have any other suggestions on
how
> to parametrisize the version numbers?
> 
> Thanx in advance,
> /Anders
> 
> 
> ---------------------------------------------------------------------
> 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]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to