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]

Reply via email to