I've checked in a new plugin to the sandbox called the "Maven Reactor
Plugin". You can use it to build a subset of interdependent projects in a
reactor. It should be useful in large reactor builds that include
irrelevant stuff you're not working on.
It includes the following goals:
reactor:resume - resume a reactor at a certain point (e.g. when it fails
in the middle)
Example: mvn reactor:resume -Dfrom=bar
reactor:make - build a project X and all of the reactor projects on which
X depends
Example: mvn reactor:make -Dmake.folders=foo,bar
reactor:makeDependents - build a project X and all of the reactor projects
that depend on X
Example: mvn reactor:make -Dmake.folders=foo,bar
(e.g. if foo depends on baz and quz depends on bar, :make will build
foo,bar,baz whereas :makeDependents will build foo,bar,quz)
reactor:makeMyChanges - build all reactor projects that you personally
have changed (according to SCM) and all reactor projects that depend
on your changes
Example: mvn reactor:makeMyChanges
All of these take an argument -Dmake.printOnly which you can use to see
what the plugin would have done without actually doing it. (This is handy
for debugging and exploration.)
This plugin was easy to write, so I fear that it may duplicate other work,
or that there may already be some clever command line tool to do this
stuff.
Feedback is appreciated. It seems to kinda-sorta work on my machine.
The sources are here:
https://svn.apache.org/repos/asf/maven/sandbox/trunk/plugins/maven-reactor-plugin
there are some TODOs:
http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-reactor-plugin/TODO.txt?view=markup
I've deployed a snapshot:
http://people.apache.org/repo/m2-snapshot-repository/org/apache/maven/plugins/maven-reactor-plugin/
If you want to try it on your machine, copy and paste this POM into a
file (e.g. myfile.xml):
<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>example</groupId>
<artifactId>example</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>example</name>
<dependencies>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-reactor-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<type>maven-plugin</type>
</dependency>
</dependencies>
<repositories>
<repository>
<id>apache-snapshots</id>
<url>http://people.apache.org/repo/m2-snapshot-repository/</url>
</repository>
</repositories>
</project>
Then run "mvn -U -cpu -f myfile.xml dependency:resolve". That should
download the deployed snapshot into your local repository.
Since it's a snapshot, you'll have to run it like this:
mvn org.apache.maven.plugins:maven-reactor-plugin:1.0-SNAPSHOT:make
-Dmake.printOnly -Dmake.folders=foo
Please do that and e-mail me to let me know what breaks, or tell me that
I'm an idiot. :-)
-Dan
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]