You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Dan Fabulich <da...@fabulich.com> on 2008/08/15 05:37:40 UTC

New sandbox plugin: maven-reactor-plugin

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: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: New sandbox plugin: maven-reactor-plugin

Posted by Dan Fabulich <da...@fabulich.com>.
Jamie Whitehouse wrote:

> Would it make more sense for the make.folders parameter to be named
> make.modules to keep it consistent with the same concept in multi-module
> builds?

I called it "folders" because you have the choice of specifying folder 
names or artifact names with make.artifacts.

Check out the more detailed examples here:

http://maven.apache.org/plugins/maven-reactor-plugin/examples.html

> Would this work with nested multi-module projects?

Yes, see the example at the end of the page linked above.

> Then run at root-project: mvn reactor:make -Dmake.folders=web-services . 
> Will this figure out that web-services, security, business-logic, mail, 
> and preferences need to be built and do that?

Yup.

> As well can these commands be invoked from within one of the modules or 
> do they have to be run at the root-project?

They have to be run from the root project, unfortunately; that's the only 
place where we have enough information to construct a reactor.

-Dan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: New sandbox plugin: maven-reactor-plugin

Posted by Jamie Whitehouse <ba...@genesyslab.com>.
On Thu, 2008-08-14 at 20:37 -0700, Dan Fabulich wrote:

> 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.

Nice, this could really improve development speed when working on large
projects.

> 
> It includes the following goals:
> 
> reactor:make - build a project X and all of the reactor projects on which
>    X depends
>    Example: mvn reactor:make -Dmake.folders=foo,bar

Would it make more sense for the make.folders parameter to be named
make.modules to keep it consistent with the same concept in multi-module
builds?

Would this work with nested multi-module projects?  E.g.
root-project
- common-components
-- mail
-- security
-- preferences
- business-logic
- web-services

Where:
web-services depends on security and business-logic
business-logic depends on mail and preferences

Then run at root-project: mvn reactor:make -Dmake.folders=web-services .
Will this figure out that web-services, security, business-logic, mail,
and preferences need to be built and do that?

As well can these commands be invoked from within one of the modules or
do they have to be run at the root-project?

When I get a chance I'll try this on one of our larger projects and let
you know if there's any problems.

Cheers,
Jamie.

					
-------------------------------------------------------------------------------------------------------------------
CONFIDENTIALITY NOTICE: This e-mail and any files attached may contain confidential and proprietary information of Alcatel-Lucent and/or its affiliated entities. Access by the intended recipient only is authorized. Any liability arising from any party acting, or refraining from acting, on any information contained in this e-mail is hereby excluded. If you are not the intended recipient, please notify the sender immediately, destroy the original transmission and its attachments and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Copyright in this e-mail and any attachments belongs to Alcatel-Lucent and/or its affiliated entities.
					

RE: releasing? RE: New sandbox plugin: maven-reactor-plugin

Posted by "Brian E. Fox" <br...@reply.infinity.nu>.
>Yes, the 2.1 (or 3.0?) that will get these changes in the core is not
>around the corner yet, so I think having the fuctionality now is
>beneficial for maven users in general.

2.1 can come out as soon as we want it to, it's only blocked by 2.0.10
so we can cut the branch.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


RE: releasing? RE: New sandbox plugin: maven-reactor-plugin

Posted by "Brian E. Fox" <br...@reply.infinity.nu>.
>+1

>I wouldn't try folding it into 3.x until the project builder  
>refactoring is done.

We were talking about the new 2.1, not 3.0 right away.

--Brian

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: releasing? RE: New sandbox plugin: maven-reactor-plugin

Posted by Jason van Zyl <ja...@maven.org>.
On 19-Aug-08, at 12:07 AM, Milos Kleint wrote:

> On Mon, Aug 18, 2008 at 6:01 PM, Dan Fabulich <da...@fabulich.com>  
> wrote:
>> At the suggestion of others I've renamed the "makeMyChanges" goal to
>> "makeScmChanges".  This clarifies the purpose of the goal a bit more.
>>
>> What I'd like to do now, if folks are interested, is pursue this  
>> problem
>> along two tracks.
>>
>> 1) release maven-reactor-plugin: begin the process of getting it  
>> graduated
>> out of sandbox and officially released so Maven 2.0.x users can  
>> begin using
>> it immediately
>>
>> 2) begin incorporating some of its functionality into the 2.1.x  
>> branch: I've
>> added my own proposal to Brian's proposal here (pasted below):
>> http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode
>>
>> What do people think of this?  Can we release maven-reactor-plugin  
>> asap even
>> if we intend to incorporate its functionality in the future into  
>> the core?
>
> Yes, the 2.1 (or 3.0?) that will get these changes in the core is not
> around the corner yet, so I think having the fuctionality now is
> beneficial for maven users in general.

+1

I wouldn't try folding it into 3.x until the project builder  
refactoring is done.

>
>
> Milos
>
>>
>> Proposal:
>>
>> -----
>>
>> We'd like to port at least reactor:resume, reactor:make,
>> reactor:makeDependents into core. I'm thinking it would go  
>> something like
>> this:
>>
>> New options:
>>
>>   * -rf --resume-from: Resume reactor from specified project
>>   * -pl --project-list: Build the specified reactor projects  
>> instead of all
>> projects
>>   * -am --also-make: If a project list is specified, also make  
>> projects
>> that the list depends on
>>   * -amd --also-make-dependents: If a project list is specified,  
>> also make
>> projects that depend on projects on the list
>>
>> Examples:
>>
>>   * resume: mvn -rf packages/a-package
>>   * make: mvn -am -pl ui/a-ui,ui/b-ui
>>   * makeDependents: mvn -amd -pl packages/a-package,packages/b- 
>> package
>>
>> At least at first, core would not include the new  
>> reactor:makeScmChanges
>> because that would require maven-core to depend on maven-scm.
>>
>> -----
>>
>> -Dan
>>
>> Dan Fabulich wrote:
>>
>>> FYI maven-reactor-plugin 1.0-SNAPSHOT has a site now:
>>>
>>> http://maven.apache.org/plugins/maven-reactor-plugin/
>>>
>>> I certainly approve of the idea of rolling at least the "make"
>>> "makeDependents" and "resume" parts of this into core, though  
>>> there's two
>>> caveats here:
>>>
>>> 1) I think I'd like to release this plugin sometime earlier than  
>>> that,
>>> perhaps as a mojo.codehaus.org plugin if not as an official Apache  
>>> Maven
>>> plugin. (Though I did already add the Apache license text to all  
>>> of the
>>> source files...)
>>>
>>> There's a lot of people on 2.0.x who will take a while to upgrade to
>>> 2.1.x, who can benefit from this plugin today.
>>>
>>> I presume the reason nobody's done this until now is that we've  
>>> thought
>>> that it couldn't/shouldn't be done as a plugin...?
>>>
>>> 2) It would be a bit weird to roll in "makeMyChanges" into the core.
>>> makeMyChanges queries SCM to find changed files; rolling it into  
>>> core would
>>> require core to depend on maven-scm (which, I think, it doesn't  
>>> right
>>> now...?) to determine what has changed.
>>>
>>> Despite that, I think it's arguably the most useful command in the  
>>> plugin.
>>> Where would *that* go?
>>>
>>> -Dan
>>>
>>> Brian E. Fox wrote:
>>>
>>>> I think this looks pretty sweet and similar to the proposal I  
>>>> wrote last
>>>> year (but didn't implement yet):
>>>> http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode
>>>>
>>>> I think that this really belongs in core. Now that trunk has  
>>>> moved to
>>>> 3.0 and we will have a new 2.1 branch (when we decide to cut it  
>>>> from
>>>> 2.0.10 or 2.0.9...not sure where the current one came from), this  
>>>> would
>>>> be perfect to fit in as a new feature. I don't want the new 2.1.0  
>>>> to
>>>> grow into a monster so for example we could implement this and  
>>>> release
>>>> it, then we could add the parallel download and release as 2.2 etc.
>>>>
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: Dan Fabulich [mailto:dan@fabulich.com]
>>>> Sent: Thursday, August 14, 2008 8:38 PM
>>>> To: Maven Users List; Maven Developers List
>>>> Subject: New sandbox plugin: maven-reactor-plugin
>>>>
>>>>
>>>> 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-react
>>>> or-plugin
>>>>
>>>> there are some TODOs:
>>>>
>>>> http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-reactor-p
>>>> lugin/TODO.txt?view=markup
>>>>
>>>> I've deployed a snapshot:
>>>>
>>>> http://people.apache.org/repo/m2-snapshot-repository/org/apache/maven/pl
>>>> ugins/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: dev-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

Selfish deeds are the shortest path to self destruction.

  -- The Seven Samuari, Akira Kirosawa


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: releasing? RE: New sandbox plugin: maven-reactor-plugin

Posted by Milos Kleint <mk...@gmail.com>.
On Mon, Aug 18, 2008 at 6:01 PM, Dan Fabulich <da...@fabulich.com> wrote:
> At the suggestion of others I've renamed the "makeMyChanges" goal to
> "makeScmChanges".  This clarifies the purpose of the goal a bit more.
>
> What I'd like to do now, if folks are interested, is pursue this problem
> along two tracks.
>
> 1) release maven-reactor-plugin: begin the process of getting it graduated
> out of sandbox and officially released so Maven 2.0.x users can begin using
> it immediately
>
> 2) begin incorporating some of its functionality into the 2.1.x branch: I've
> added my own proposal to Brian's proposal here (pasted below):
> http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode
>
> What do people think of this?  Can we release maven-reactor-plugin asap even
> if we intend to incorporate its functionality in the future into the core?

Yes, the 2.1 (or 3.0?) that will get these changes in the core is not
around the corner yet, so I think having the fuctionality now is
beneficial for maven users in general.

Milos

>
> Proposal:
>
> -----
>
> We'd like to port at least reactor:resume, reactor:make,
> reactor:makeDependents into core. I'm thinking it would go something like
> this:
>
> New options:
>
>    * -rf --resume-from: Resume reactor from specified project
>    * -pl --project-list: Build the specified reactor projects instead of all
> projects
>    * -am --also-make: If a project list is specified, also make projects
> that the list depends on
>    * -amd --also-make-dependents: If a project list is specified, also make
> projects that depend on projects on the list
>
> Examples:
>
>    * resume: mvn -rf packages/a-package
>    * make: mvn -am -pl ui/a-ui,ui/b-ui
>    * makeDependents: mvn -amd -pl packages/a-package,packages/b-package
>
> At least at first, core would not include the new reactor:makeScmChanges
> because that would require maven-core to depend on maven-scm.
>
> -----
>
> -Dan
>
> Dan Fabulich wrote:
>
>> FYI maven-reactor-plugin 1.0-SNAPSHOT has a site now:
>>
>> http://maven.apache.org/plugins/maven-reactor-plugin/
>>
>> I certainly approve of the idea of rolling at least the "make"
>> "makeDependents" and "resume" parts of this into core, though there's two
>> caveats here:
>>
>> 1) I think I'd like to release this plugin sometime earlier than that,
>> perhaps as a mojo.codehaus.org plugin if not as an official Apache Maven
>> plugin. (Though I did already add the Apache license text to all of the
>> source files...)
>>
>> There's a lot of people on 2.0.x who will take a while to upgrade to
>> 2.1.x, who can benefit from this plugin today.
>>
>> I presume the reason nobody's done this until now is that we've thought
>> that it couldn't/shouldn't be done as a plugin...?
>>
>> 2) It would be a bit weird to roll in "makeMyChanges" into the core.
>> makeMyChanges queries SCM to find changed files; rolling it into core would
>> require core to depend on maven-scm (which, I think, it doesn't right
>> now...?) to determine what has changed.
>>
>> Despite that, I think it's arguably the most useful command in the plugin.
>> Where would *that* go?
>>
>> -Dan
>>
>> Brian E. Fox wrote:
>>
>>> I think this looks pretty sweet and similar to the proposal I wrote last
>>> year (but didn't implement yet):
>>> http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode
>>>
>>> I think that this really belongs in core. Now that trunk has moved to
>>> 3.0 and we will have a new 2.1 branch (when we decide to cut it from
>>> 2.0.10 or 2.0.9...not sure where the current one came from), this would
>>> be perfect to fit in as a new feature. I don't want the new 2.1.0 to
>>> grow into a monster so for example we could implement this and release
>>> it, then we could add the parallel download and release as 2.2 etc.
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: Dan Fabulich [mailto:dan@fabulich.com]
>>> Sent: Thursday, August 14, 2008 8:38 PM
>>> To: Maven Users List; Maven Developers List
>>> Subject: New sandbox plugin: maven-reactor-plugin
>>>
>>>
>>> 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-react
>>> or-plugin
>>>
>>> there are some TODOs:
>>>
>>> http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-reactor-p
>>> lugin/TODO.txt?view=markup
>>>
>>> I've deployed a snapshot:
>>>
>>> http://people.apache.org/repo/m2-snapshot-repository/org/apache/maven/pl
>>> ugins/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: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: releasing? RE: New sandbox plugin: maven-reactor-plugin

Posted by Dan Fabulich <da...@fabulich.com>.
Tobias Gierke wrote:

> First of all, thanks for your work on this plugin...it really eases the pain 
> ;) As far as i know, no other plugin uses camel-case goal names. Wouldn't it 
> be more consistent to name them "make-my-changes" and "make-scm-changes" ?

Yup, I've already changed it:

http://maven.apache.org/plugins/maven-reactor-plugin/

-Dan


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: releasing? RE: New sandbox plugin: maven-reactor-plugin

Posted by Tobias Gierke <to...@code-sourcery.de>.
Hi,
> At the suggestion of others I've renamed the "makeMyChanges" goal to 
> "makeScmChanges".  This clarifies the purpose of the goal a bit more.
First of all, thanks for your work on this plugin...it really eases the 
pain ;) As far as i know, no other plugin uses camel-case goal names. 
Wouldn't it be more consistent to name them "make-my-changes" and 
"make-scm-changes" ?

Regards,

Tobias

>
> What I'd like to do now, if folks are interested, is pursue this 
> problem along two tracks.
>
> 1) release maven-reactor-plugin: begin the process of getting it 
> graduated out of sandbox and officially released so Maven 2.0.x users 
> can begin using it immediately
>
> 2) begin incorporating some of its functionality into the 2.1.x 
> branch: I've added my own proposal to Brian's proposal here (pasted 
> below): http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode
>
> What do people think of this?  Can we release maven-reactor-plugin 
> asap even if we intend to incorporate its functionality in the future 
> into the core?
>
> Proposal:
>
> -----
>
> We'd like to port at least reactor:resume, reactor:make, 
> reactor:makeDependents into core. I'm thinking it would go something 
> like this:
>
> New options:
>
>     * -rf --resume-from: Resume reactor from specified project
>     * -pl --project-list: Build the specified reactor projects instead 
> of all projects
>     * -am --also-make: If a project list is specified, also make 
> projects that the list depends on
>     * -amd --also-make-dependents: If a project list is specified, 
> also make projects that depend on projects on the list
>
> Examples:
>
>     * resume: mvn -rf packages/a-package
>     * make: mvn -am -pl ui/a-ui,ui/b-ui
>     * makeDependents: mvn -amd -pl packages/a-package,packages/b-package
>
> At least at first, core would not include the new 
> reactor:makeScmChanges because that would require maven-core to depend 
> on maven-scm.
>
> -----
>
> -Dan
>
> Dan Fabulich wrote:
>
>> FYI maven-reactor-plugin 1.0-SNAPSHOT has a site now:
>>
>> http://maven.apache.org/plugins/maven-reactor-plugin/
>>
>> I certainly approve of the idea of rolling at least the "make" 
>> "makeDependents" and "resume" parts of this into core, though there's 
>> two caveats here:
>>
>> 1) I think I'd like to release this plugin sometime earlier than 
>> that, perhaps as a mojo.codehaus.org plugin if not as an official 
>> Apache Maven plugin. (Though I did already add the Apache license 
>> text to all of the source files...)
>>
>> There's a lot of people on 2.0.x who will take a while to upgrade to 
>> 2.1.x, who can benefit from this plugin today.
>>
>> I presume the reason nobody's done this until now is that we've 
>> thought that it couldn't/shouldn't be done as a plugin...?
>>
>> 2) It would be a bit weird to roll in "makeMyChanges" into the core. 
>> makeMyChanges queries SCM to find changed files; rolling it into core 
>> would require core to depend on maven-scm (which, I think, it doesn't 
>> right now...?) to determine what has changed.
>>
>> Despite that, I think it's arguably the most useful command in the 
>> plugin. Where would *that* go?
>>
>> -Dan
>>
>> Brian E. Fox wrote:
>>
>>> I think this looks pretty sweet and similar to the proposal I wrote 
>>> last
>>> year (but didn't implement yet):
>>> http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode
>>>
>>> I think that this really belongs in core. Now that trunk has moved to
>>> 3.0 and we will have a new 2.1 branch (when we decide to cut it from
>>> 2.0.10 or 2.0.9...not sure where the current one came from), this would
>>> be perfect to fit in as a new feature. I don't want the new 2.1.0 to
>>> grow into a monster so for example we could implement this and release
>>> it, then we could add the parallel download and release as 2.2 etc.
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: Dan Fabulich [mailto:dan@fabulich.com]
>>> Sent: Thursday, August 14, 2008 8:38 PM
>>> To: Maven Users List; Maven Developers List
>>> Subject: New sandbox plugin: maven-reactor-plugin
>>>
>>>
>>> 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-react 
>>>
>>> or-plugin
>>>
>>> there are some TODOs:
>>>
>>> http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-reactor-p 
>>>
>>> lugin/TODO.txt?view=markup
>>>
>>> I've deployed a snapshot:
>>>
>>> http://people.apache.org/repo/m2-snapshot-repository/org/apache/maven/pl 
>>>
>>> ugins/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: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: releasing? RE: New sandbox plugin: maven-reactor-plugin

Posted by Dan Fabulich <da...@fabulich.com>.
Nick Stolwijk wrote:

> Shouldn't those examples include one or multiple goals and/or phases? Or
> will it always execute install?

Yes, check out the examples here:

http://maven.apache.org/plugins/maven-reactor-plugin/examples.html

One example:
mvn reactor:make -Dmake.folders=barBusinessLogic -Dmake.goals=clean,package

-Dan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: releasing? RE: New sandbox plugin: maven-reactor-plugin

Posted by Nick Stolwijk <ni...@gmail.com>.
Shouldn't those examples include one or multiple goals and/or phases? Or
will it always execute install?

With regards,

Nick Stolwijk
~Java Developer~

Iprofs BV.
Claus Sluterweg 125
2012 WS Haarlem
www.iprofs.nl


On Mon, Aug 18, 2008 at 6:01 PM, Dan Fabulich <da...@fabulich.com> wrote:

> At the suggestion of others I've renamed the "makeMyChanges" goal to
> "makeScmChanges".  This clarifies the purpose of the goal a bit more.
>
> What I'd like to do now, if folks are interested, is pursue this problem
> along two tracks.
>
> 1) release maven-reactor-plugin: begin the process of getting it graduated
> out of sandbox and officially released so Maven 2.0.x users can begin using
> it immediately
>
> 2) begin incorporating some of its functionality into the 2.1.x branch:
> I've added my own proposal to Brian's proposal here (pasted below):
> http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode
>
> What do people think of this?  Can we release maven-reactor-plugin asap
> even if we intend to incorporate its functionality in the future into the
> core?
>
> Proposal:
>
> -----
>
> We'd like to port at least reactor:resume, reactor:make,
> reactor:makeDependents into core. I'm thinking it would go something like
> this:
>
> New options:
>
>    * -rf --resume-from: Resume reactor from specified project
>    * -pl --project-list: Build the specified reactor projects instead of
> all projects
>    * -am --also-make: If a project list is specified, also make projects
> that the list depends on
>    * -amd --also-make-dependents: If a project list is specified, also make
> projects that depend on projects on the list
>
> Examples:
>
>    * resume: mvn -rf packages/a-package
>    * make: mvn -am -pl ui/a-ui,ui/b-ui
>    * makeDependents: mvn -amd -pl packages/a-package,packages/b-package
>
> At least at first, core would not include the new reactor:makeScmChanges
> because that would require maven-core to depend on maven-scm.
>
> -----
>
> -Dan
>
> Dan Fabulich wrote:
>
>  FYI maven-reactor-plugin 1.0-SNAPSHOT has a site now:
>>
>> http://maven.apache.org/plugins/maven-reactor-plugin/
>>
>> I certainly approve of the idea of rolling at least the "make"
>> "makeDependents" and "resume" parts of this into core, though there's two
>> caveats here:
>>
>> 1) I think I'd like to release this plugin sometime earlier than that,
>> perhaps as a mojo.codehaus.org plugin if not as an official Apache Maven
>> plugin. (Though I did already add the Apache license text to all of the
>> source files...)
>>
>> There's a lot of people on 2.0.x who will take a while to upgrade to
>> 2.1.x, who can benefit from this plugin today.
>>
>> I presume the reason nobody's done this until now is that we've thought
>> that it couldn't/shouldn't be done as a plugin...?
>>
>> 2) It would be a bit weird to roll in "makeMyChanges" into the core.
>> makeMyChanges queries SCM to find changed files; rolling it into core would
>> require core to depend on maven-scm (which, I think, it doesn't right
>> now...?) to determine what has changed.
>>
>> Despite that, I think it's arguably the most useful command in the plugin.
>> Where would *that* go?
>>
>> -Dan
>>
>> Brian E. Fox wrote:
>>
>>  I think this looks pretty sweet and similar to the proposal I wrote last
>>> year (but didn't implement yet):
>>> http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode
>>>
>>> I think that this really belongs in core. Now that trunk has moved to
>>> 3.0 and we will have a new 2.1 branch (when we decide to cut it from
>>> 2.0.10 or 2.0.9...not sure where the current one came from), this would
>>> be perfect to fit in as a new feature. I don't want the new 2.1.0 to
>>> grow into a monster so for example we could implement this and release
>>> it, then we could add the parallel download and release as 2.2 etc.
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: Dan Fabulich [mailto:dan@fabulich.com]
>>> Sent: Thursday, August 14, 2008 8:38 PM
>>> To: Maven Users List; Maven Developers List
>>> Subject: New sandbox plugin: maven-reactor-plugin
>>>
>>>
>>> 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-react
>>> or-plugin
>>>
>>> there are some TODOs:
>>>
>>> http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-reactor-p
>>> lugin/TODO.txt?view=markup
>>>
>>> I've deployed a snapshot:
>>>
>>> http://people.apache.org/repo/m2-snapshot-repository/org/apache/maven/pl
>>> ugins/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: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>

releasing? RE: New sandbox plugin: maven-reactor-plugin

Posted by Dan Fabulich <da...@fabulich.com>.
At the suggestion of others I've renamed the "makeMyChanges" goal to 
"makeScmChanges".  This clarifies the purpose of the goal a bit more.

What I'd like to do now, if folks are interested, is pursue this problem 
along two tracks.

1) release maven-reactor-plugin: begin the process of getting it graduated 
out of sandbox and officially released so Maven 2.0.x users can begin 
using it immediately

2) begin incorporating some of its functionality into the 2.1.x branch: 
I've added my own proposal to Brian's proposal here (pasted below): 
http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode

What do people think of this?  Can we release maven-reactor-plugin asap 
even if we intend to incorporate its functionality in the future into the 
core?

Proposal:

-----

We'd like to port at least reactor:resume, reactor:make, 
reactor:makeDependents into core. I'm thinking it would go something like 
this:

New options:

     * -rf --resume-from: Resume reactor from specified project
     * -pl --project-list: Build the specified reactor projects instead of 
all projects
     * -am --also-make: If a project list is specified, also make projects 
that the list depends on
     * -amd --also-make-dependents: If a project list is specified, also 
make projects that depend on projects on the list

Examples:

     * resume: mvn -rf packages/a-package
     * make: mvn -am -pl ui/a-ui,ui/b-ui
     * makeDependents: mvn -amd -pl packages/a-package,packages/b-package

At least at first, core would not include the new reactor:makeScmChanges 
because that would require maven-core to depend on maven-scm.

-----

-Dan

Dan Fabulich wrote:

> FYI maven-reactor-plugin 1.0-SNAPSHOT has a site now:
>
> http://maven.apache.org/plugins/maven-reactor-plugin/
>
> I certainly approve of the idea of rolling at least the "make" 
> "makeDependents" and "resume" parts of this into core, though there's two 
> caveats here:
>
> 1) I think I'd like to release this plugin sometime earlier than that, 
> perhaps as a mojo.codehaus.org plugin if not as an official Apache Maven 
> plugin. (Though I did already add the Apache license text to all of the 
> source files...)
>
> There's a lot of people on 2.0.x who will take a while to upgrade to 2.1.x, 
> who can benefit from this plugin today.
>
> I presume the reason nobody's done this until now is that we've thought that 
> it couldn't/shouldn't be done as a plugin...?
>
> 2) It would be a bit weird to roll in "makeMyChanges" into the core. 
> makeMyChanges queries SCM to find changed files; rolling it into core would 
> require core to depend on maven-scm (which, I think, it doesn't right 
> now...?) to determine what has changed.
>
> Despite that, I think it's arguably the most useful command in the plugin. 
> Where would *that* go?
>
> -Dan
>
> Brian E. Fox wrote:
>
>> I think this looks pretty sweet and similar to the proposal I wrote last
>> year (but didn't implement yet):
>> http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode
>> 
>> I think that this really belongs in core. Now that trunk has moved to
>> 3.0 and we will have a new 2.1 branch (when we decide to cut it from
>> 2.0.10 or 2.0.9...not sure where the current one came from), this would
>> be perfect to fit in as a new feature. I don't want the new 2.1.0 to
>> grow into a monster so for example we could implement this and release
>> it, then we could add the parallel download and release as 2.2 etc.
>> 
>> 
>> 
>> -----Original Message-----
>> From: Dan Fabulich [mailto:dan@fabulich.com]
>> Sent: Thursday, August 14, 2008 8:38 PM
>> To: Maven Users List; Maven Developers List
>> Subject: New sandbox plugin: maven-reactor-plugin
>> 
>> 
>> 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-react
>> or-plugin
>> 
>> there are some TODOs:
>> 
>> http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-reactor-p
>> lugin/TODO.txt?view=markup
>> 
>> I've deployed a snapshot:
>> 
>> http://people.apache.org/repo/m2-snapshot-repository/org/apache/maven/pl
>> ugins/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: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>> 
>> 
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


RE: New sandbox plugin: maven-reactor-plugin

Posted by Dan Fabulich <da...@fabulich.com>.
FYI maven-reactor-plugin 1.0-SNAPSHOT has a site now:

http://maven.apache.org/plugins/maven-reactor-plugin/

I certainly approve of the idea of rolling at least the "make" 
"makeDependents" and "resume" parts of this into core, though there's two 
caveats here:

1) I think I'd like to release this plugin sometime earlier than that, 
perhaps as a mojo.codehaus.org plugin if not as an official Apache Maven 
plugin. (Though I did already add the Apache license text to all of the 
source files...)

There's a lot of people on 2.0.x who will take a while to upgrade to 
2.1.x, who can benefit from this plugin today.

I presume the reason nobody's done this until now is that we've thought 
that it couldn't/shouldn't be done as a plugin...?

2) It would be a bit weird to roll in "makeMyChanges" into the core. 
makeMyChanges queries SCM to find changed files; rolling it into core 
would require core to depend on maven-scm (which, I think, it doesn't 
right now...?) to determine what has changed.

Despite that, I think it's arguably the most useful command in the plugin. 
Where would *that* go?

-Dan

Brian E. Fox wrote:

> I think this looks pretty sweet and similar to the proposal I wrote last
> year (but didn't implement yet):
> http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode
>
> I think that this really belongs in core. Now that trunk has moved to
> 3.0 and we will have a new 2.1 branch (when we decide to cut it from
> 2.0.10 or 2.0.9...not sure where the current one came from), this would
> be perfect to fit in as a new feature. I don't want the new 2.1.0 to
> grow into a monster so for example we could implement this and release
> it, then we could add the parallel download and release as 2.2 etc.
>
>
>
> -----Original Message-----
> From: Dan Fabulich [mailto:dan@fabulich.com]
> Sent: Thursday, August 14, 2008 8:38 PM
> To: Maven Users List; Maven Developers List
> Subject: New sandbox plugin: maven-reactor-plugin
>
>
> 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-react
> or-plugin
>
> there are some TODOs:
>
> http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-reactor-p
> lugin/TODO.txt?view=markup
>
> I've deployed a snapshot:
>
> http://people.apache.org/repo/m2-snapshot-repository/org/apache/maven/pl
> ugins/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: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


RE: New sandbox plugin: maven-reactor-plugin

Posted by "Brian E. Fox" <br...@reply.infinity.nu>.
I think this looks pretty sweet and similar to the proposal I wrote last
year (but didn't implement yet):
http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode

I think that this really belongs in core. Now that trunk has moved to
3.0 and we will have a new 2.1 branch (when we decide to cut it from
2.0.10 or 2.0.9...not sure where the current one came from), this would
be perfect to fit in as a new feature. I don't want the new 2.1.0 to
grow into a monster so for example we could implement this and release
it, then we could add the parallel download and release as 2.2 etc.



-----Original Message-----
From: Dan Fabulich [mailto:dan@fabulich.com] 
Sent: Thursday, August 14, 2008 8:38 PM
To: Maven Users List; Maven Developers List
Subject: New sandbox plugin: maven-reactor-plugin


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-react
or-plugin

there are some TODOs:

http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-reactor-p
lugin/TODO.txt?view=markup

I've deployed a snapshot:

http://people.apache.org/repo/m2-snapshot-repository/org/apache/maven/pl
ugins/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: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org