You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Brian Fox (JIRA)" <ji...@codehaus.org> on 2006/12/06 05:28:42 UTC

[jira] Commented: (MNG-2546) Allow plugin executions in the "super-init" phase before reactor sorting of modules build order

    [ http://jira.codehaus.org/browse/MNG-2546?page=comments#action_81861 ] 
            
Brian Fox commented on MNG-2546:
--------------------------------

Allowing a plugin to bind to a super-init phase is certainly helpful but I think some way to allow a plugin to bind to a normal phase and participate in the super-init is needed. Take the following example:

I build a zip file that needs to be unpacked during the compile phase of a sibling project. In the dependent project, I use maven-dependency-plugin:unpack bound to the compile phase. In order to guarantee the reactor order, I would need the plugin to be able to read it's configuration and add a dynamic dependency during the super-init, but then wait to the compile phase of my project to actually unpack.

 I don't see how a single phase would allow this without duplicating the configuration. I see something more like a new "execute" method that gets called during super-init to allow some interaction, or some other way to map methods to a "super" phase. I'm thinking of a case where the plugin author knows that something will always need to be done and doesn't want to require extra pom work to make it work correctly.


> Allow plugin executions in the "super-init" phase before reactor sorting of modules build order
> -----------------------------------------------------------------------------------------------
>
>                 Key: MNG-2546
>                 URL: http://jira.codehaus.org/browse/MNG-2546
>             Project: Maven 2
>          Issue Type: Improvement
>          Components: Reactor and workspace
>    Affects Versions: 2.0.4
>            Reporter: Binyan
>         Attachments: MNG-2546-maven-core.patch
>
>
> As seen here, http://www.nabble.com/How-to-execute-a-plugin-prior-to-the-reactor-sorting--tf2062739.html#a5682349.  I also have the need to bind my maven-pde-plugin to a phase before the reactor sorting of project build order happens.  My plugin is being developed to build eclipse plugins, features, fragments, update sites and products.  Right now I can build plugins and features.  However the order has to constantly be managed by the user taking information from the eclipse descriptors and adding it to the pom file.  For plugin projects I can bind to a phase before the compile phase and dynamically analyze the eclipse plugin descriptors and add the necessary dependencies/resources to the MavenProject instance and all is well.  For feature projects, I also can dynamically analyze the eclipse feature descriptor and add the necessary resources to the MavenProject instance.  However, features depend on other plugins, fragments and features.  While I can dynamicaly add the plugins, fragments and features to the MavenProject as dependencies they are not taken into context as the reactor has already computed the sorting order.
> What would be perfect is if there was a "super-init" phase that plugins could bind to and be executed in before the normal declared lifecycle happened.  Therefore no matter what the lifecycle was, the "super-init" phase would be available.  Then plugins could do things like augmenting the super-pom with build #'s/identifiers, dependencies, dynamic projects, etc all before maven gets going.  That would solve the problem myself and others have as well as be 100% backwards compatible.  This super-init phase (please pick a better name) would e available to reactor and non-reactor builds.  A more specific fix would be to allow plugins to ask the reactor to reevaluate the build order.

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