Just as an example for why the plugin's need to be resolved the same way
as projects. The following is the resolution result of the
'maven-resources-plugin' version 2.7 when resolved as a project:


org.apache.maven.plugins:maven-resources-plugin:jar:2.7:
   org.apache.maven:maven-plugin-api:jar:2.2.1:compile
   org.apache.maven:maven-project:jar:2.2.1:compile
      org.apache.maven:maven-profile:jar:2.2.1:compile
      org.apache.maven:maven-artifact-manager:jar:2.2.1:compile
         backport-util-concurrent:backport-util-concurrent:jar:3.1:compile
      org.apache.maven:maven-plugin-registry:jar:2.2.1:compile

org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile
   org.apache.maven:maven-core:jar:2.2.1:compile
      org.apache.maven:maven-plugin-parameter-documenter:jar:2.2.1:compile
      org.slf4j:slf4j-jdk14:jar:1.5.6:runtime
         org.slf4j:slf4j-api:jar:1.5.6:runtime
      org.slf4j:jcl-over-slf4j:jar:1.5.6:runtime
      org.apache.maven.reporting:maven-reporting-api:jar:2.2.1:compile
         org.apache.maven.doxia:doxia-sink-api:jar:1.1:compile
         org.apache.maven.doxia:doxia-logging-api:jar:1.1:compile
      org.apache.maven:maven-repository-metadata:jar:2.2.1:compile
      org.apache.maven:maven-error-diagnostics:jar:2.2.1:compile
      commons-cli:commons-cli:jar:1.2:compile
      org.apache.maven:maven-plugin-descriptor:jar:2.2.1:compile
      org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4:compile
         *plexus:plexus-utils:jar:1.0.2:compile*
      classworlds:classworlds:jar:1.1:compile
      org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3:compile
         org.sonatype.plexus:plexus-cipher:jar:1.4:compile
   org.apache.maven:maven-artifact:jar:2.2.1:compile
   org.apache.maven:maven-settings:jar:2.2.1:compile
   org.apache.maven:maven-model:jar:2.2.1:compile
   org.apache.maven:maven-monitor:jar:2.2.1:compile
   org.apache.maven.plugin-tools:maven-plugin-annotations:jar:3.2:provided
   *org.codehaus.plexus:plexus-utils:jar:3.0.15:compile*
   org.apache.maven.shared:maven-filtering:jar:1.2:compile
      org.apache.maven.shared:maven-shared-utils:jar:0.3:compile
         com.google.code.findbugs:jsr305:jar:2.0.1:compile
      org.sonatype.plexus:plexus-build-api:jar:0.0.4:compile
   org.codehaus.plexus:plexus-interpolation:jar:1.19:compile
   org.apache.maven.shared:maven-plugin-testing-harness:jar:1.1:test
      junit:junit:jar:3.8.1:compile
      org.codehaus.plexus:plexus-archiver:jar:1.0-alpha-7:test
   commons-io:commons-io:jar:1.4:test

It has duplicate classes on the classpath the conflict resolver does not
detect due to different group ids in use.

         *plexus:plexus-utils:jar:1.0.2:compile*
   *org.codehaus.plexus:plexus-utils:jar:3.0.15:compile*

So this really is a bug in the POM of the plugin. Fixing that POM means
releasing a new version of the plugin. The old version really is broken.
This plugin version is used in ITs and is the reason for some of those
failures. I really would need to upgrade that plugin in the IT poms to a
recent version which does not have this problem.

Execution default-resources of goal
org.apache.maven.plugins:maven-resources-plugin:2.7:resources failed: An
API incompatibility was encountered while executing
org.apache.maven.plugins:maven-resources-plugin:2.7:resources:
java.lang.IncompatibleClassChangeError: Class
org.codehaus.plexus.util.DirectoryScanner does not implement the
requested interface org.codehaus.plexus.util.Scanner

urls[9] =
file:/home/schulte/Sources/apache.org/maven-integration-testing/repo/plexus/plexus-utils/1.0.2/plexus-utils-1.0.2.jar
urls[12] =
file:/home/schulte/Sources/apache.org/maven-integration-testing/repo/org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar

It just happens the old plexus-utils comes before the more recent
plexus-utils (9 < 12) on the classpath.


Am 12/17/16 um 21:56 schrieb Guillaume Boué:
> Yes, I confirm that the build of the Maven plugins is OK when checking 
> out cc5af1306ff91d9bef68737c96c364a371a477d7.
> 
> 
> Le 17/12/2016 à 16:43, Hervé BOUTEMY a écrit :
>> if you avoid the 3 last commits flagged as MNG-6135, you get a fairly working
>> Maven (even if 3 ITs are still failing)
>>
>> I don't understand the intend of MNG-6135, but I see the result: a mess
>>
>> Regards,
>>
>> Hervé
>>
>> Le samedi 17 décembre 2016, 15:47:34 CET Guillaume Boué a écrit :
>>> Hi,
>>>
>>> With the latest Maven 3.4.0, there is an API incompability with a Plexus
>>> Util version when running the build of any Maven plugins. For example,
>>> with the maven-dependency-plugin:
>>>
>>> guillaume@guillaume-VirtualBox:~/workspace-maven/maven-plugins-aggregator/ma
>>> ven-dependency-plugin$ mvn340 --version
>>> Apache Maven 3.4.0-SNAPSHOT (14bff2c5c5a0729e39f7d0fc62ed733222c90a18;
>>> 2016-12-17T14:47:33+01:00)
>>> Maven home: /usr/share/apache-maven-3.4.0-SNAPSHOT
>>> Java version: 1.8.0_111, vendor: Oracle Corporation
>>> Java home: /usr/lib/jvm/java-8-openjdk-i386/jre
>>> Default locale: en_US, platform encoding: UTF-8
>>> OS name: "linux", version: "4.4.0-47-generic", arch: "i386", family: "unix"
>>> guillaume@guillaume-VirtualBox:~/workspace-maven/maven-plugins-aggregator/ma
>>> ven-dependency-plugin$ mvn340 clean install -Prun-its
>>> [INFO] Scanning for projects...
>>> [INFO]
>>> [INFO]
>>> ------------------------------------------------------------------------
>>> [INFO] Building Apache Maven Dependency Plugin 3.0.1-SNAPSHOT
>>> [INFO]
>>> ------------------------------------------------------------------------
>>> [INFO]
>>> [INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @
>>> maven-dependency-plugin ---
>>> [INFO] Deleting
>>> /home/guillaume/workspace-maven/maven-plugins-aggregator/maven-dependency-pl
>>> ugin/target [INFO]
>>> [INFO] --- maven-enforcer-plugin:1.4.1:enforce
>>> (enforce-bytecode-version) @ maven-dependency-plugin ---
>>> [INFO]
>>> [INFO] --- maven-enforcer-plugin:1.4.1:enforce
>>> (ban-known-bad-maven-versions) @ maven-dependency-plugin ---
>>> [INFO]
>>> [INFO] --- maven-enforcer-plugin:1.4.1:enforce (ensure-no-container-api)
>>> @ maven-dependency-plugin ---
>>> [INFO]
>>> [INFO] --- apache-rat-plugin:0.11:check (rat-check) @
>>> maven-dependency-plugin ---
>>> [INFO]
>>> ------------------------------------------------------------------------
>>> [INFO] BUILD FAILURE
>>> [INFO]
>>> ------------------------------------------------------------------------
>>> [INFO] Total time: 14.885 s
>>> [INFO] Finished at: 2016-12-17T15:15:25+01:00
>>> [INFO] Final Memory: 64M/318M
>>> [INFO]
>>> ------------------------------------------------------------------------
>>> [ERROR] Failed to execute goal
>>> org.apache.rat:apache-rat-plugin:0.11:check (rat-check) on project
>>> maven-dependency-plugin: Execution rat-check of goal
>>> org.apache.rat:apache-rat-plugin:0.11:check failed: An API
>>> incompatibility was encountered while executing
>>> org.apache.rat:apache-rat-plugin:0.11:check:
>>> java.lang.IllegalAccessError: tried to access field
>>> org.codehaus.plexus.util.DirectoryScanner.DEFAULTEXCLUDES from class
>>> org.apache.rat.mp.AbstractRatMojo
>>> [ERROR] -----------------------------------------------------
>>> [ERROR] realm =    plugin>org.apache.rat:apache-rat-plugin:0.11
>>> [ERROR] strategy =
>>> org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
>>> [ERROR] urls[0] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/rat/apache-rat-plugin/0.1
>>> 1/apache-rat-plugin-0.11.jar [ERROR] urls[1] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/maven/doxia/doxia-core/1.
>>> 2/doxia-core-1.2.jar [ERROR] urls[2] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/maven/doxia/doxia-logging
>>> -api/1.2/doxia-logging-api-1.2.jar [ERROR] urls[3] =
>>> file:/C:/Users/Guillaume/.m2/repository/xerces/xercesImpl/2.9.1/xercesImpl-2
>>> .9.1.jar [ERROR] urls[4] =
>>> file:/C:/Users/Guillaume/.m2/repository/xml-apis/xml-apis/1.3.04/xml-apis-1.
>>> 3.04.jar [ERROR] urls[5] =
>>> file:/C:/Users/Guillaume/.m2/repository/commons-lang/commons-lang/2.6/common
>>> s-lang-2.6.jar [ERROR] urls[6] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/httpcomponents/httpclient
>>> /4.0.2/httpclient-4.0.2.jar [ERROR] urls[7] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/httpcomponents/httpcore/4
>>> .0.1/httpcore-4.0.1.jar [ERROR] urls[8] =
>>> file:/C:/Users/Guillaume/.m2/repository/commons-logging/commons-logging/1.1.
>>> 1/commons-logging-1.1.1.jar [ERROR] urls[9] =
>>> file:/C:/Users/Guillaume/.m2/repository/commons-codec/commons-codec/1.3/comm
>>> ons-codec-1.3.jar [ERROR] urls[10] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/rat/apache-rat-core/0.11/
>>> apache-rat-core-0.11.jar [ERROR] urls[11] =
>>> file:/C:/Users/Guillaume/.m2/repository/commons-collections/commons-collecti
>>> ons/3.2.1/commons-collections-3.2.1.jar [ERROR] urls[12] =
>>> file:/C:/Users/Guillaume/.m2/repository/commons-io/commons-io/2.2/commons-io
>>> -2.2.jar [ERROR] urls[13] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/commons/commons-compress/
>>> 1.5/commons-compress-1.5.jar [ERROR] urls[14] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/tukaani/xz/1.2/xz-1.2.jar
>>> [ERROR] urls[15] =
>>> file:/C:/Users/Guillaume/.m2/repository/commons-cli/commons-cli/1.2/commons-
>>> cli-1.2.jar [ERROR] urls[16] =
>>> file:/C:/Users/Guillaume/.m2/repository/backport-util-concurrent/backport-ut
>>> il-concurrent/3.1/backport-util-concurrent-3.1.jar [ERROR] urls[17] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/codehaus/plexus/plexus-interpola
>>> tion/1.11/plexus-interpolation-1.11.jar [ERROR] urls[18] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/maven/doxia/doxia-decorat
>>> ion-model/1.2/doxia-decoration-model-1.2.jar [ERROR] urls[19] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/maven/doxia/doxia-sink-ap
>>> i/1.2/doxia-sink-api-1.2.jar [ERROR] urls[20] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/maven/doxia/doxia-site-re
>>> nderer/1.2/doxia-site-renderer-1.2.jar [ERROR] urls[21] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/maven/doxia/doxia-module-
>>> xhtml/1.2/doxia-module-xhtml-1.2.jar [ERROR] urls[22] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/maven/doxia/doxia-module-
>>> fml/1.2/doxia-module-fml-1.2.jar [ERROR] urls[23] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/codehaus/plexus/plexus-i18n/1.0-
>>> beta-7/plexus-i18n-1.0-beta-7.jar [ERROR] urls[24] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/codehaus/plexus/plexus-velocity/
>>> 1.1.7/plexus-velocity-1.1.7.jar [ERROR] urls[25] =
>>> file:/C:/Users/Guillaume/.m2/repository/velocity/velocity/1.4/velocity-1.4.j
>>> ar [ERROR] urls[26] =
>>> file:/C:/Users/Guillaume/.m2/repository/velocity/velocity-dep/1.4/velocity-d
>>> ep-1.4.jar [ERROR] urls[27] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/velocity/velocity/1.5/vel
>>> ocity-1.5.jar [ERROR] urls[28] =
>>> file:/C:/Users/Guillaume/.m2/repository/oro/oro/2.0.8/oro-2.0.8.jar
>>> [ERROR] urls[29] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/maven/reporting/maven-rep
>>> orting-api/3.0/maven-reporting-api-3.0.jar [ERROR] urls[30] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/apache/maven/shared/maven-plugin
>>> -testing-harness/1.1/maven-plugin-testing-harness-1.1.jar [ERROR] urls[31] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/codehaus/plexus/plexus-interacti
>>> vity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar [ERROR]
>>> urls[32] =
>>> file:/C:/Users/Guillaume/.m2/repository/plexus/plexus-utils/1.0.2/plexus-uti
>>> ls-1.0.2.jar [ERROR] urls[33] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/codehaus/plexus/plexus-archiver/
>>> 1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar [ERROR] urls[34] =
>>> file:/C:/Users/Guillaume/.m2/repository/org/codehaus/plexus/plexus-utils/3.0
>>> .8/plexus-utils-3.0.8.jar
>>>
>>>
>>> It seems that forcing the version of the Rat Plugin to 0.12 instead of
>>> 0.11 fixes the issue (it is inherited from org.apache:apache:18). But it
>>> leads further down to the same API incompability in other Maven plugins,
>>> like the maven-invoker-plugin:2.0.0, for which it is the latest version
>>> (I didn't try 3.0.0-SNAPSHOT).
>>>
>>> This seems to be due to an upgrade of Plexus Utils to a version that
>>> isn't backwards-compatible. The inconvenience is that all of this is
>>> happening at run-time, so it is very hard to detect what other
>>> components are hit. Can someone take a look? Maybe this upgrade needs to
>>> be reverted in the mean time?
>>>
>>> Thanks,
>>> Guillaume
>>>
>>> ---
>>> L'absence de virus dans ce courrier électronique a été vérifiée par le
>>> logiciel antivirus Avast. https://www.avast.com/antivirus
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>> For additional commands, e-mail: dev-h...@maven.apache.org
>>
> 
> 
> ---
> L'absence de virus dans ce courrier électronique a été vérifiée par le 
> logiciel antivirus Avast.
> https://www.avast.com/antivirus
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to