S L created MNG-7204:
------------------------

             Summary: Maven might pick up the wrong settings when the plugin 
happens to include relocation information
                 Key: MNG-7204
                 URL: https://issues.apache.org/jira/browse/MNG-7204
             Project: Maven
          Issue Type: Bug
            Reporter: S L


h1. Issue Description

The relocation process is outlined in 
[here|https://maven.apache.org/guides/mini/guide-relocation.html] and IMHO 
boils down to adding the relocation information into the distributionManagement.

For the sake of experimenting assume we want to relocate a plugin from
{code:java}
    <groupId>com.example.plugins</groupId>
    <artifactId>test-plugin</artifactId>
{code}
to
{code:java}
    <groupId>com.test.plugins</groupId>
    <artifactId>test-plugin-enhanced</artifactId>
{code}
To visualize the issue the plugin needs one configuration parameter (let's call 
it helloString). Based on the relocation guide my understanding is that we need 
two publications. One under the old coordinates and one under the new 
coordinates.

When invoking the plugin with the old coordinates it will **not** pickup our 
configuration supplied. Consider:
{code:java}
<groupId>com.example.plugins</groupId>
<artifactId>test-plugin</artifactId>
<version>0.0.1</version>
<configuration>
        <helloString>from Maven!</helloString>
</configuration>
{code}
h1. Issue Reproducer

Attached I have an example that consists of essentially two parts. On a high 
level my understanding is that the the publication under the "old" coordinates 
can have a jar ("01_project_old_coordinates_with_jar"), but doesn't need to 
have one which would then essentially be a relocation pom 
("01_project_old_coordinates_without_jar").

The project publication with jar allows to see the expected by running
{code:java}
cd 01_project_old_coordinates_with_jar
mvn clean install
mvn clean package -Pdemo
{code}
which outputs {{Hello from Maven!}} (since this is the setting configured in 
the pom).

When the relocation is done ("02_project_new_coordinates") and a new version 
under the new coordinates is published (but one still points to the old 
configuration) the configuration will not be picked up.
{code:java}
cd 02_project_new_coordinates
# install the SAME version under new coordinates
mvn clean install
# run the demo again which still points to the OLD config
mvn clean package -Pdemo
{code}
which output {{Hello World!}}. World is the default encoded in the Mojo, but 
**not** what was provided to the plugin config!

This issue can also be observed when the publication under the old coordinates 
is just a relocation pom.
h1. Reproducible under
{code:java}
$ mvn --version
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 
2019-04-04T21:00:29+02:00)
Maven home: /usr/share/maven-3.6.1
Java version: 11.0.11, vendor: Oracle Corporation, runtime: 
/usr/lib/jvm/java-11-oracle
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-77-generic", arch: "amd64", family: "unix"
{code}
{code:java}
$ mvn --version
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: /usr/share/maven-3.8.1
Java version: 11.0.11, vendor: Oracle Corporation, runtime: 
/usr/lib/jvm/java-11-oracle
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-77-generic", arch: "amd64", family: "unix"
{code}
Potentially many other versions.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to