[ http://jira.codehaus.org/browse/MASSEMBLY-133?page=all ]
Alexis Midon closed MASSEMBLY-133. ---------------------------------- Resolution: Duplicate duplicate of issue 117 > Assembly including binaries: Bug on a n depth hierarchy > ------------------------------------------------------- > > Key: MASSEMBLY-133 > URL: http://jira.codehaus.org/browse/MASSEMBLY-133 > Project: Maven 2.x Assembly Plugin > Issue Type: Bug > Affects Versions: 2.1 > Environment: Maven 2.0.4 > Reporter: Alexis Midon > Priority: Critical > Attachments: AbstractAssemblyMojo.java > > > Considering the following complex but common pom hierarchy (sample) : > The syntax is packaging:pom:level.# > pom:pom0.0 > /\ > / \ > / \ > / \ > / \ > jar:pom1.0 pom:pom1.1 > /\ > / \ > / \ > / \ > / \ > jar:pom2.0 jar:pom2.1 > I'd like to use the assembly plugin to gather all the output jars in a single > directory. > (So every child/target/artifact.jar must copy to root/target/assembly/...) > To do so I execute the assemby:assembly goal with the following descriptor : > <assembly> > <id>collect-alljars</id> > <formats> > <format>dir</format> > </formats> > <includeBaseDirectory>false</includeBaseDirectory> > <moduleSets> > <moduleSet> > <binaries> > <unpack>false</unpack> > </binaries> > </moduleSet> > </moduleSets> > </assembly> > Unfortunately this always fails into an exception: "pom:pom1.1 does not have > an artifact with a file. Please ensure the package phase (...)" > This use case highlights 2 problems I think: > 1. the assembly plugin does not support n depth hierarchy > Actually pom:pom1.1 should be included in the module list but > jar:pom2.0 and jar:pom2.1 should be too! > 2. the <binaries/> tag must not throw an exception if there is no file, > distonction on packaging type sounds necessary > To understand what's going on with bug #1, I decided to debug the plugin. > The problem occurs in AbstractAssemblyMojo.processModules (...) line 471 > The getModulesFromReactor() method is invoked but with recurse set to false! > As a result when jar:pom2.0 is tested, the isProjectModule() method returns > false, which is not correct (in our case). > May be 'recurse' could be a plugin parameter? > The patch is delimited by // PATCH BEGIN/END, modif on lines 470 and 514. -- 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