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]

Reply via email to