[ 
http://jira.codehaus.org/browse/MNG-2576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_106688
 ] 

Brian Fox commented on MNG-2576:
--------------------------------

Seems almost exactly what I wrote in this proposal: 
http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode

> Add option to find root of project tree from subproject and build required 
> deps
> -------------------------------------------------------------------------------
>
>                 Key: MNG-2576
>                 URL: http://jira.codehaus.org/browse/MNG-2576
>             Project: Maven 2
>          Issue Type: New Feature
>          Components: Command Line, Reactor and workspace
>            Reporter: Kenney Westerhof
>            Priority: Minor
>             Fix For: Reviewed Pending Version Assignment
>
>
> Add a commandline option to enable maven to expand the reactor scope to find 
> projects that are dependencies
> of the projects currently in the reactor, and add them.
> Currently only the current project and child projects are included in the 
> reactor search. I'm proposing
> to add a commandline switch that lets maven check parent directories to find 
> the root of the project tree,
> and then do a normal reactor scan, only adding projects that would normally 
> not be added if they're needed
> as dependencies of the projects that would normally be built.
> Here's a sample project tree:
> * root
> ** p1
> *** c1 (depends on p2)
> ** p2 (depends on c2)
> ** p3
> *** c2
> And a sample algorithm:
> - When building c1, the reactor would contain [c1].
> - Maven would check p1, then root, etc, using the <parent> tags (without the 
> versions!)
>   to see if the project is still in the current reactor.
> - It would then create a second list of projects (reactor2) containing ALL 
> projects, using the newly discovered root: [root, p1, c2, p2].
> - remove all projects from reactor2 contained in reactor: reactor2 = [root, 
> p1, p2]
> - resolve all direct dependencies for all projects in reactor in reactor2 and 
> add them to reactor, taking versions into account: reactor = [p2, c1]
> - repeat previous step until all projects have their dependencies resolved 
> from reactor 2. first iteration would yield reactor = [c2, p2, c1],
>   next iteration would stop since c1 doesn't have any dependencies present in 
> reactor2.
> This would ensure that when some local project's sources have changed, 
> they'll be incorporated
> in the build, regardless of where you build. So you don't have to do a 
> reactor build each time you change more
> than 1 project, and you don't have to remember which projects you changed and 
> build them in the correct order
> yourself, manually.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to