Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.1.1
-
None
Description
Hi,
Applying a relocation on a plugin seems to lose its configuration.
In the following sample, I relocated "nuxeo-distribution-tools" to "ant-assembly-maven-plugin" and the missing configured parameter is "buildFile". The relocation itself went well but the execution fails because of a missing parameter.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.nuxeo.build</groupId> <artifactId>nuxeo-distribution-tools</artifactId> <version>2.0-SNAPSHOT</version> <packaging>maven-plugin</packaging> <name>Nuxeo Distribution Build</name> <description>Assemble Nuxeo distributions</description> <distributionManagement> <relocation> <artifactId>ant-assembly-maven-plugin</artifactId> </relocation> </distributionManagement> </project>
<build> <plugins> <plugin> <groupId>org.nuxeo.build</groupId> <!-- With relocation --> <artifactId>nuxeo-distribution-tools</artifactId> <!-- Without relocation --> <!-- <artifactId>ant-assembly-maven-plugin</artifactId> --> <executions> <execution> <id>assemble</id> <phase>package</phase> <configuration> <!-- The missing parameter in case of relocation --> <buildFile>src/main/assemble/assembly.xml</buildFile> </configuration> <goals> <goal>build</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
Here is the diff between an "mvn package -X" with nuxeo-distribution-tools (ie: with relocation; line starting with "<") and another one with ant-assembly-maven-plugin (ie: without relocation; line starting with ">"):
< [DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=1, ConflictMarker.markTime=0, ConflictMarker.nodeCount=72, ConflictIdSorter.graphTime=0, ConflictIdSorter.topsortTime=0, ConflictIdSorter.conflictIdCount=34, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=1, ConflictResolver.conflictItemCount=71, DefaultDependencyCollector.collectTime=10, DefaultDependencyCollector.transformTime=2} > [DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=1, ConflictMarker.markTime=0, ConflictMarker.nodeCount=72, ConflictIdSorter.graphTime=0, ConflictIdSorter.topsortTime=0, ConflictIdSorter.conflictIdCount=34, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=2, ConflictResolver.conflictItemCount=71, DefaultDependencyCollector.collectTime=65, DefaultDependencyCollector.transformTime=3} --- < [DEBUG] Created new class realm plugin>org.nuxeo.build:nuxeo-distribution-tools:2.0-SNAPSHOT < [DEBUG] Importing foreign packages into class realm plugin>org.nuxeo.build:nuxeo-distribution-tools:2.0-SNAPSHOT > [DEBUG] Created new class realm plugin>org.nuxeo.build:ant-assembly-maven-plugin:2.0-SNAPSHOT > [DEBUG] Importing foreign packages into class realm plugin>org.nuxeo.build:ant-assembly-maven-plugin:2.0-SNAPSHOT --- < [DEBUG] Populating class realm plugin>org.nuxeo.build:nuxeo-distribution-tools:2.0-SNAPSHOT > [DEBUG] Populating class realm plugin>org.nuxeo.build:ant-assembly-maven-plugin:2.0-SNAPSHOT --- < [DEBUG] Configuring mojo org.nuxeo.build:ant-assembly-maven-plugin:2.0-SNAPSHOT:build from plugin realm ClassRealm[plugin>org.nuxeo.build:nuxeo-distribution-tools:2.0-SNAPSHOT, parent: sun.misc.Launcher$AppClassLoader@591ce4fe] > [DEBUG] Configuring mojo org.nuxeo.build:ant-assembly-maven-plugin:2.0-SNAPSHOT:build from plugin realm ClassRealm[plugin>org.nuxeo.build:ant-assembly-maven-plugin:2.0-SNAPSHOT, parent: sun.misc.Launcher$AppClassLoader@77fe0d66] --- > [DEBUG] (f) buildFile = /home/julien/ws-ssd/nuxeo/nuxeo-distribution/nuxeo-distribution-resources/src/main/assemble/assembly.xml
The last line highlights the missing parameter.
Indeed, it seems that in case of a relocation, all the "Parameter" Mojo fields take their default value (or none) whereas the "Component" fields are still properly injected.