Ondrej Chaloupk created MASSEMBLY-809: -----------------------------------------
Summary: Assembly plugin requires precise dependency order when classifier is used Key: MASSEMBLY-809 URL: https://issues.apache.org/jira/browse/MASSEMBLY-809 Project: Maven Assembly Plugin Issue Type: Bug Components: dependencySet Affects Versions: 2.6, 2.5.5 Reporter: Ondrej Chaloupk Assembly plugin wrongly pack dependencies of project when {{classifier}} dependencies are defined in random order. For the plugin pack it in right way it requires ordering dependencies precisely where dependency without the {{classifier}} is used before the dependency with it. If wrong order is used then the result jar seems to contain both dependencies - with and without classifier. But the file _without classifier_ is not contained and the content of it is equal to the one _with the classifier_. For building Narayana project there is used pom.xml with {code} <dependency> <groupId>org.jboss.narayana.xts</groupId> <artifactId>jbossxts</artifactId> <version>${project.version}</version> <classifier>api</classifier> </dependency> <dependency> <groupId>org.jboss.narayana.xts</groupId> <artifactId>jbossxts</artifactId> <version>${project.version}</version> </dependency> {code} pom.xml: https://github.com/jbosstm/narayana/blob/master/narayana-full/pom.xml bin.xml: https://github.com/jbosstm/narayana/blob/master/narayana-full/src/main/assembly/bin.xml For this descriptor the content of the result zip file is {code} 44658 06-01-2016 14:17 narayana-full-5.3.3.Final-SNAPSHOT/lib/xts/jbossxts-api.jar 44658 06-01-2016 14:17 narayana-full-5.3.3.Final-SNAPSHOT/lib/xts/jbossxts.jar {code} You can see the artifacts {{jbossxts-api}} and {{jbossxts}} are the same. If ordering is changed {code} <dependency> <groupId>org.jboss.narayana.xts</groupId> <artifactId>jbossxts</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.jboss.narayana.xts</groupId> <artifactId>jbossxts</artifactId> <version>${project.version}</version> <classifier>api</classifier> </dependency> {code} then the generated zip file contain correct data. {code} 972473 06-01-2016 14:17 narayana-full-5.3.3.Final-SNAPSHOT/lib/xts/jbossxts.jar 44658 06-01-2016 14:17 narayana-full-5.3.3.Final-SNAPSHOT/lib/xts/jbossxts-api.jar {code} _To reproduce:_ # {{git clone g...@github.com:jbosstm/narayana.git}} # {{cd narayana}} # {{./build.sh clean install -Pcommunity -DskipTests -Didlj-enabled=true}} Now you can see {{unzip -l narayana-full/target/narayana-full-5.*zip | grep xts}} showing the same file. Edit {{narayana-full/pom.xml}} to change the place where {{classfier}} is used for the {{jbossxts}} artifact. You can do {{cd narayana-full; mvn clean install}} and when you checked the result zip there will be different content of both jbossxts files. Discussed at https://issues.jboss.org/browse/JBTM-2679 -- This message was sent by Atlassian JIRA (v6.3.4#6332)