Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Bug
-
2.5.5, 2.6
-
None
-
None
Description
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
<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>
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
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
You can see the artifacts jbossxts-api and jbossxts are the same.
If ordering is changed
<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>
then the generated zip file contain correct data.
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
To reproduce:
- git clone git@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
Attachments
Issue Links
- is depended upon by
-
MNG-5980 DependencyGraphBuilder gives different results depending on the order of dependencies in the pom
- Closed