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 Topping (JIRA)" <ji...@codehaus.org> on 2007/07/04 09:49:13 UTC

[jira] Commented: (MNG-1323) Plugin extensions (dependencies) not resolved in reactor build

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

Brian Topping commented on MNG-1323:
------------------------------------

John's comment in http://jira.codehaus.org/browse/MNG-1323#action_50268 is correct, that "this is undoubtedly caused by Maven not disposing of plugin containers between project builds".  DefaultPluginManager.ensurePluginContainerIsComplete() specifically skips plugin instantiation on the first line if it's already been initialized.

This is a huge problem in a build that I am working on.  Using a setup like:

root/pom.xml, modules: a, b
       a/pom.xml: define antrun, with antrun target that generates an ant Task
       b/pom.xml: define antrun, with <dependencies> section that includes the task built with a

There's no way to use the Task built in a if the container that built a is not disposed and reloaded with the new dependencies of b (which includes a).

This whole thing of using antrun is suboptimal, but it needs to be supported.  The project that I'm currently porting uses XDoclet 1 very heavily, along with a forked version of Castor and some Texen tasks for a forked version of Torque.  The only way to reliably bring this across is to clean it up after things are stabilized, with 60+ projects at last count, there's just too much risk to try to create plugins before the build is operational.

JOHN:  have you tried to solve this before and run into problems?  This issue is coming up on two years old and has over 20 watchers.  I'd like to help, but from previous experience, I'd like to get as much information as I can about what the solution is up against.  It's an obvious performance violation to blindly dispose the container with every execution (there should probably be some kind of dependency signature comparison before disposing the container), but since this happens per-build rather than within a build, the impact should be minimal.  

Discuss! 

> Plugin extensions (dependencies) not resolved in reactor build
> --------------------------------------------------------------
>
>                 Key: MNG-1323
>                 URL: http://jira.codehaus.org/browse/MNG-1323
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Plugins and Lifecycle
>    Affects Versions: 2.0
>            Reporter: Kenney Westerhof
>             Fix For: 2.0.x
>
>         Attachments: MNG-1323-core-integration-tests.diff
>
>
> I've added a dependency on an Ant Task in project/build/plugins/plugin[artifactId='maven-antrun-plugin']/dependencies/ and run that anttask using the antrun plugin.
> When run from the project dir itself it runs fine.
> When running from the root of the project tree (reactor build, project one level below root),
> antrun bails out because the taskdef can't be found (not on classpath).
> It looks like the dependency isn't resolved, or not added to the plugins' classrealm.

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