You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Robert Egan <ro...@aciworldwide.com> on 2012/04/17 23:43:07 UTC

Assembly plugin plugin

I have written a ContainerDescriptorHandler plugin for the Maven assembly
plugin. It works when the module that uses it is built 'standalone'. When
the module is built as part of a large multi-module project I see either

[INFO] : org.apache.maven.plugin.assembly.model.Assembly@13579e0
Assembly is incorrectly configured: null

Assembly: null is not configured correctly: Cannot find
ContainerDescriptorHandler with hint: instructions

Or, even worse,

[INFO] Trace
java.lang.OutOfMemoryError: Java heap space
        at java.lang.String.substring(String.java:1770)
        at
org.codehaus.plexus.interpolation.util.StringUtils.capitalizeFirstLetter(StringUtils.java:119)
        at
org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.evaluate(ReflectionValueExtractor.java:90)
        at
org.codehaus.plexus.interpolation.ObjectBasedValueSource.getValue(ObjectBasedValueSource.java:59)
        at
org.codehaus.plexus.interpolation.PrefixedValueSourceWrapper.getValue(PrefixedValueSourceWrapper.java:134)
        at
org.codehaus.plexus.interpolation.AbstractDelegatingValueSource.getValue(AbstractDelegatingValueSource.java:44)
        at
org.codehaus.plexus.interpolation.StringSearchInterpolator.interpolate(StringSearchInterpolator.java:196)
        at
org.codehaus.plexus.interpolation.StringSearchInterpolator.interpolate(StringSearchInterpolator.java:124)
        at
org.apache.maven.project.interpolation.AbstractStringBasedModelInterpolator.interpolateInternal(AbstractStringBasedModelInterpolator.java:315)
        at
org.apache.maven.project.interpolation.StringSearchModelInterpolator$InterpolateObjectAction.traverseObjectWithParents(StringSearchModelInterpolator.java:185)
        at
org.apache.maven.project.interpolation.StringSearchModelInterpolator$InterpolateObjectAction.run(StringSearchModelInterpolator.java:135)
        at
org.apache.maven.project.interpolation.StringSearchModelInterpolator$InterpolateObjectAction.run(StringSearchModelInterpolator.java:102)
        at java.security.AccessController.doPrivileged(Native Method)
        at
org.apache.maven.project.interpolation.StringSearchModelInterpolator.interpolateObject(StringSearchModelInterpolator.java:80)
        at
org.apache.maven.project.interpolation.StringSearchModelInterpolator.interpolate(StringSearchModelInterpolator.java:62)
        at
org.apache.maven.project.DefaultMavenProjectBuilder.processProjectLogic(DefaultMavenProjectBuilder.java:990)
        at
org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:880)
        at
org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:255)
        at
org.apache.maven.project.artifact.MavenMetadataSource.retrieveRelocatedProject(MavenMetadataSource.java:163)
        at
org.apache.maven.project.artifact.MavenMetadataSource.retrieveRelocatedArtifact(MavenMetadataSource.java:94)
        at
org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:387)
        at
org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:435)
        at
org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:435)
        at
org.apache.maven.artifact.resolver.DefaultArtifactCollector.collect(DefaultArtifactCollector.java:74)
        at
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:316)
        at
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:304)
        at
org.apache.maven.plugin.DefaultPluginManager.resolveTransitiveDependencies(DefaultPluginManager.java:1499)
        at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:442)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)

I have boosted the memory settings to ridiculously high values with no
effect, which leads me to believe I have created some kind of infinite
dependency loop, because many of the other modules also use the assembly
plugin (although without my ContainerDescriptorHandler).

Does Maven have a switch to log the workings of the dependency mechanism as
it does its job?

Re: Assembly plugin plugin

Posted by Jörg Schaible <Jo...@scalaris.com>.
Hi Robert,

Robert Egan wrote:

> The latter. There is indeed a 'root' module with a pluginManagement
> section. I do not control its content directly, I can ask that the my
> assembly plugin be added there.

that's actually the only working solution in M2. Just declare the plugin 
there in the pluginMgmt without any configuration, but the required 
dependencies.

Cheers,
Jörg


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


Re: Assembly plugin plugin

Posted by Robert Egan <ro...@aciworldwide.com>.
The latter. There is indeed a 'root' module with a pluginManagement
section. I do not control its content directly, I can ask that the my
assembly plugin be added there.

Thanks


On Tue, Apr 17, 2012 at 11:39 PM, Wayne Fay <wa...@gmail.com> wrote:

> > I suppose I will have to figure out a way to make sure mine gets loaded
> > first. Are there any tricks out there for fooling the reactor?
>
> I know of no tricks. You should talk to the owner of the other
> module(s) using the assembly plugin and convince them to add your
> handler into their <plugin><dependencies> or even better get the owner
> of the top parent to add a pluginManagement section and specify it
> there (then it will be inherited down to all the other poms).
>
> Wayne
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>

Re: Assembly plugin plugin

Posted by Wayne Fay <wa...@gmail.com>.
> I suppose I will have to figure out a way to make sure mine gets loaded
> first. Are there any tricks out there for fooling the reactor?

I know of no tricks. You should talk to the owner of the other
module(s) using the assembly plugin and convince them to add your
handler into their <plugin><dependencies> or even better get the owner
of the top parent to add a pluginManagement section and specify it
there (then it will be inherited down to all the other poms).

Wayne

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


Re: Assembly plugin plugin

Posted by Robert Egan <ro...@aciworldwide.com>.
M2.

I suppose I will have to figure out a way to make sure mine gets loaded
first. Are there any tricks out there for fooling the reactor?


On Tue, Apr 17, 2012 at 5:58 PM, Jörg Schaible <jo...@gmx.de>wrote:

> Robert Egan wrote:
>
> > I have written a ContainerDescriptorHandler plugin for the Maven assembly
> > plugin. It works when the module that uses it is built 'standalone'. When
> > the module is built as part of a large multi-module project I see either
>
  ....

> >
> > Does Maven have a switch to log the workings of the dependency mechanism
> > as it does its job?
>
>
> M2 or M3? For M2 the first error is normal, since every plugin is loaded
> once and once only. If the first usage of the assembly plugin does not
> contain your handler as part of its classpath, it will not be available
> anywhere else in the multi-project build. M3 should instantiate the plugin
> again with the proper CP.
>
> - Jörg
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>

Re: Assembly plugin plugin

Posted by Jörg Schaible <jo...@gmx.de>.
Robert Egan wrote:

> I have written a ContainerDescriptorHandler plugin for the Maven assembly
> plugin. It works when the module that uses it is built 'standalone'. When
> the module is built as part of a large multi-module project I see either
> 
> [INFO] : org.apache.maven.plugin.assembly.model.Assembly@13579e0
> Assembly is incorrectly configured: null
> 
> Assembly: null is not configured correctly: Cannot find
> ContainerDescriptorHandler with hint: instructions
> 
> Or, even worse,
> 
> [INFO] Trace
> java.lang.OutOfMemoryError: Java heap space
>         at java.lang.String.substring(String.java:1770)
>         at
> 
org.codehaus.plexus.interpolation.util.StringUtils.capitalizeFirstLetter(StringUtils.java:119)
>         at
> 
org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.evaluate(ReflectionValueExtractor.java:90)
>         at
> 
org.codehaus.plexus.interpolation.ObjectBasedValueSource.getValue(ObjectBasedValueSource.java:59)
>         at
> 
org.codehaus.plexus.interpolation.PrefixedValueSourceWrapper.getValue(PrefixedValueSourceWrapper.java:134)
>         at
> 
org.codehaus.plexus.interpolation.AbstractDelegatingValueSource.getValue(AbstractDelegatingValueSource.java:44)
>         at
> 
org.codehaus.plexus.interpolation.StringSearchInterpolator.interpolate(StringSearchInterpolator.java:196)
>         at
> 
org.codehaus.plexus.interpolation.StringSearchInterpolator.interpolate(StringSearchInterpolator.java:124)
>         at
> 
org.apache.maven.project.interpolation.AbstractStringBasedModelInterpolator.interpolateInternal(AbstractStringBasedModelInterpolator.java:315)
>         at
> 
org.apache.maven.project.interpolation.StringSearchModelInterpolator$InterpolateObjectAction.traverseObjectWithParents(StringSearchModelInterpolator.java:185)
>         at
> 
org.apache.maven.project.interpolation.StringSearchModelInterpolator$InterpolateObjectAction.run(StringSearchModelInterpolator.java:135)
>         at
> 
org.apache.maven.project.interpolation.StringSearchModelInterpolator$InterpolateObjectAction.run(StringSearchModelInterpolator.java:102)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at
> 
org.apache.maven.project.interpolation.StringSearchModelInterpolator.interpolateObject(StringSearchModelInterpolator.java:80)
>         at
> 
org.apache.maven.project.interpolation.StringSearchModelInterpolator.interpolate(StringSearchModelInterpolator.java:62)
>         at
> 
org.apache.maven.project.DefaultMavenProjectBuilder.processProjectLogic(DefaultMavenProjectBuilder.java:990)
>         at
> 
org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:880)
>         at
> 
org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:255)
>         at
> 
org.apache.maven.project.artifact.MavenMetadataSource.retrieveRelocatedProject(MavenMetadataSource.java:163)
>         at
> 
org.apache.maven.project.artifact.MavenMetadataSource.retrieveRelocatedArtifact(MavenMetadataSource.java:94)
>         at
> 
org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:387)
>         at
> 
org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:435)
>         at
> 
org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:435)
>         at
> 
org.apache.maven.artifact.resolver.DefaultArtifactCollector.collect(DefaultArtifactCollector.java:74)
>         at
> 
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:316)
>         at
> 
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:304)
>         at
> 
org.apache.maven.plugin.DefaultPluginManager.resolveTransitiveDependencies(DefaultPluginManager.java:1499)
>         at
> 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:442)
>         at
> 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
>         at
> 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
>         at
> 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
>         at
> 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
> 
> I have boosted the memory settings to ridiculously high values with no
> effect, which leads me to believe I have created some kind of infinite
> dependency loop, because many of the other modules also use the assembly
> plugin (although without my ContainerDescriptorHandler).
> 
> Does Maven have a switch to log the workings of the dependency mechanism
> as it does its job?


M2 or M3? For M2 the first error is normal, since every plugin is loaded 
once and once only. If the first usage of the assembly plugin does not 
contain your handler as part of its classpath, it will not be available 
anywhere else in the multi-project build. M3 should instantiate the plugin 
again with the proper CP.

- Jörg


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