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 [email protected]: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)