Julien CARSIQUE created MNG-5561:
------------------------------------

             Summary: Plugin relocation looses configuration
                 Key: MNG-5561
                 URL: https://jira.codehaus.org/browse/MNG-5561
             Project: Maven 2 & 3
          Issue Type: Bug
          Components: Plugins and Lifecycle
    Affects Versions: 3.1.1
            Reporter: Julien CARSIQUE


Hi,

Applying a relocation on a plugin seems to loose 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.

{code:title=~/.m2/repository/org/nuxeo/build/nuxeo-distribution-tools/2.0-SNAPSHOT/nuxeo-distribution-tools-2.0-SNAPSHOT.pom}
<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>{code}

{code:title=executed POM extract}
  <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>
{code}

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 ">"):
{noformat}< [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{noformat}

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.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to