Oh and -Dproperties=blah.version,foo.version will only do the update
check for ${blah.version} and ${foo.version}
On Thu, Jul 17, 2008 at 1:35 PM, Stephen Connolly
<[EMAIL PROTECTED]> wrote:
> I have developed a plugin that makes keeping versions of related but
> not quite tightly coupled in sync a lot easier.
>
> How do I go about contributing this to mojo?
>
> -Stephen
>
> FYI here's how it works...
>
> In your pom you probably have a property used to define the version in
> one place, for example:
>
> <project>
> ...
> <dependencyManagement>
> <dependency>
> <groupId>blah</groupId>
> <artifactId>blah-core</artifactId>
> <version>${blah.version}</version>
> </dependency>
> <dependency>
> <groupId>blah</groupId>
> <artifactId>blah-logging</artifactId>
> <version>${blah.version}</version>
> </dependency>
> <dependency>
> <groupId>blah</groupId>
> <artifactId>blah-reporting</artifactId>
> <version>${blah.version}</version>
> </dependency>
> </dependencyManagement>
> ...
> <properties>
> <blah.version>1.3.4</blah.version>
> </properties>
> ...
> </project>
>
> That way you can update the version in one place and not forget any of them.
>
> My plugin... which I'm calling properties-maven-plugin for now (if
> somebody has a better name, I'm more than welcome to hear it)
>
> allows you to define what artifact to base property values off... so if we
> added
>
> ...
> <build>
> ...
> <plugins>
> ...
> <plugin>
> <groupId>org.codehaus.mojo</groupId>
> <artifactId>properties-maven-plugin</artifactId>
> <configuration>
> <linkedItems>
> <linkedItem>
> <property>blah.version</property>
> <groupId>blah</groupId>
> <artifactId>blah-core</artifactId>
> </linkedItem>
> </linkedItems>
> </configuration>
> </plugin>
> ...
> </plugins>
> ...
> </build>
> ...
>
> Then by running "mvn properties:use-latest" will rewrite the pom so
> that blah.version is the latest version available to you while "mvn
> properties:use-latest-releases" will rewrite the pom so that
> blah.version is the latest non -SNAPSHOT version available.
>
> You could then run a build and see if everything is OK before finally
> doing a checkin using the scm plugin!
>
> The plugin also has two other goals...
>
> "mvn properties:use-latest-parent" which will update the parent of any
> project who's parent is not in the reactor to the latest version
> available to you, while "mvn properties:use-latest-parent-release"
> will update to the latest non -SNAPSHOT.
> Note: this will only affect projects who's parent is external to the
> reactor (for example a corporate pom)
>
> Oh... and if you want to prevent jumping too high in versions or too
> low, it supports adding a version specification to limit things.
>
> e.g.
> <linkedItem>
> <property>blah.version</property>
> <groupId>blah</groupId>
> <artifactId>blah-core</artifactId>
> <version>[1.3.2,1.4.0-!)</version>
> </linkedItem>
>
> will only update blah.version within the 1.3 stream and must update to
> at least 1.3.2
>
> If a matching version cannot be found it will leave things as they are.
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]