Why is a Maven plugin failing with error messages about 'API incompatibility', 'foreign imports' and the 'maven.api Class realm'?

StackOverflow https://stackoverflow.com/questions/17968349

  •  04-06-2022
  •  | 
  •  

Question

I have just spent the better part of an afternoon trying to solve this Maven problem with the Jetty plugin telling me that it wouldn't run because the SLF4J dependencies had an incompatible API for MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple

[INFO] --- jetty-maven-plugin:9.0.4.v20130625:run (start-jetty-before-integration-tests) @ scala-spring-hibernate-maven-webapp ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 27.167s
[INFO] Finished at: Wed Jul 31 16:23:57 EST 2013
[INFO] Final Memory: 12M/30M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.eclipse.jetty:jetty-maven-plugin:9.0.4.v20130625:run (start-jetty-before-integration-tests) on project scala-spring-hibernate-maven-webapp: Execution start-jetty-before-integration-tests of goal org.eclipse.jetty:jetty-maven-plugin:9.0.4.v20130625:run failed: Unable to load the mojo 'run' in the plugin 'org.eclipse.jetty:jetty-maven-plugin:9.0.4.v20130625' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.eclipse.jetty:jetty-maven-plugin:9.0.4.v20130625
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-maven-plugin/9.0.4.v20130625/jetty-maven-plugin-9.0.4.v20130625.jar
[ERROR] urls[1] = file:/Users/graham/.m2/repository/org/sonatype/sisu/sisu-inject-bean/2.1.1/sisu-inject-bean-2.1.1.jar
[ERROR] urls[2] = file:/Users/graham/.m2/repository/org/sonatype/sisu/sisu-guice/2.9.4/sisu-guice-2.9.4-no_aop.jar
[ERROR] urls[3] = file:/Users/graham/.m2/repository/org/codehaus/plexus/plexus-utils/2.0.6/plexus-utils-2.0.6.jar
[ERROR] urls[4] = file:/Users/graham/.m2/repository/org/sonatype/aether/aether-util/1.11/aether-util-1.11.jar
[ERROR] urls[5] = file:/Users/graham/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
[ERROR] urls[6] = file:/Users/graham/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[ERROR] urls[7] = file:/Users/graham/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
[ERROR] urls[8] = file:/Users/graham/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[9] = file:/Users/graham/.m2/repository/org/apache/maven/plugin-tools/maven-plugin-tools-api/3.1/maven-plugin-tools-api-3.1.jar
[ERROR] urls[10] = file:/Users/graham/.m2/repository/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
[ERROR] urls[11] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-util/9.0.4.v20130625/jetty-util-9.0.4.v20130625.jar
[ERROR] urls[12] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-webapp/9.0.4.v20130625/jetty-webapp-9.0.4.v20130625.jar
[ERROR] urls[13] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-xml/9.0.4.v20130625/jetty-xml-9.0.4.v20130625.jar
[ERROR] urls[14] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-servlet/9.0.4.v20130625/jetty-servlet-9.0.4.v20130625.jar
[ERROR] urls[15] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-jaas/9.0.4.v20130625/jetty-jaas-9.0.4.v20130625.jar
[ERROR] urls[16] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-security/9.0.4.v20130625/jetty-security-9.0.4.v20130625.jar
[ERROR] urls[17] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-plus/9.0.4.v20130625/jetty-plus-9.0.4.v20130625.jar
[ERROR] urls[18] = file:/Users/graham/.m2/repository/org/eclipse/jetty/orbit/javax.transaction/1.1.1.v201105210645/javax.transaction-1.1.1.v201105210645.jar
[ERROR] urls[19] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-jndi/9.0.4.v20130625/jetty-jndi-9.0.4.v20130625.jar
[ERROR] urls[20] = file:/Users/graham/.m2/repository/org/eclipse/jetty/orbit/javax.mail.glassfish/1.4.1.v201005082020/javax.mail.glassfish-1.4.1.v201005082020.jar
[ERROR] urls[21] = file:/Users/graham/.m2/repository/org/eclipse/jetty/orbit/javax.activation/1.1.0.v201105071233/javax.activation-1.1.0.v201105071233.jar
[ERROR] urls[22] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-server/9.0.4.v20130625/jetty-server-9.0.4.v20130625.jar
[ERROR] urls[23] = file:/Users/graham/.m2/repository/org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar
[ERROR] urls[24] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-http/9.0.4.v20130625/jetty-http-9.0.4.v20130625.jar
[ERROR] urls[25] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-io/9.0.4.v20130625/jetty-io-9.0.4.v20130625.jar
[ERROR] urls[26] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-jmx/9.0.4.v20130625/jetty-jmx-9.0.4.v20130625.jar
[ERROR] urls[27] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-annotations/9.0.4.v20130625/jetty-annotations-9.0.4.v20130625.jar
[ERROR] urls[28] = file:/Users/graham/.m2/repository/org/eclipse/jetty/orbit/javax.annotation/1.1.0.v201108011116/javax.annotation-1.1.0.v201108011116.jar
[ERROR] urls[29] = file:/Users/graham/.m2/repository/org/eclipse/jetty/orbit/org.objectweb.asm/3.1.0.v200803061910/org.objectweb.asm-3.1.0.v200803061910.jar
[ERROR] urls[30] = file:/Users/graham/.m2/repository/org/eclipse/jetty/websocket/websocket-server/9.0.4.v20130625/websocket-server-9.0.4.v20130625.jar
[ERROR] urls[31] = file:/Users/graham/.m2/repository/org/eclipse/jetty/websocket/websocket-common/9.0.4.v20130625/websocket-common-9.0.4.v20130625.jar
[ERROR] urls[32] = file:/Users/graham/.m2/repository/org/eclipse/jetty/websocket/websocket-api/9.0.4.v20130625/websocket-api-9.0.4.v20130625.jar
[ERROR] urls[33] = file:/Users/graham/.m2/repository/org/eclipse/jetty/websocket/websocket-client/9.0.4.v20130625/websocket-client-9.0.4.v20130625.jar
[ERROR] urls[34] = file:/Users/graham/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/9.0.4.v20130625/websocket-servlet-9.0.4.v20130625.jar
[ERROR] urls[35] = file:/Users/graham/.m2/repository/org/eclipse/jetty/jetty-jsp/9.0.4.v20130625/jetty-jsp-9.0.4.v20130625.jar
[ERROR] urls[36] = file:/Users/graham/.m2/repository/org/eclipse/jetty/orbit/javax.servlet.jsp/2.2.0.v201112011158/javax.servlet.jsp-2.2.0.v201112011158.jar
[ERROR] urls[37] = file:/Users/graham/.m2/repository/org/eclipse/jetty/orbit/org.apache.jasper.glassfish/2.2.2.v201112011158/org.apache.jasper.glassfish-2.2.2.v201112011158.jar
[ERROR] urls[38] = file:/Users/graham/.m2/repository/org/eclipse/jetty/orbit/javax.servlet.jsp.jstl/1.2.0.v201105211821/javax.servlet.jsp.jstl-1.2.0.v201105211821.jar
[ERROR] urls[39] = file:/Users/graham/.m2/repository/org/eclipse/jetty/orbit/org.apache.taglibs.standard.glassfish/1.2.0.v201112081803/org.apache.taglibs.standard.glassfish-1.2.0.v201112081803.jar
[ERROR] urls[40] = file:/Users/graham/.m2/repository/org/eclipse/jetty/orbit/javax.el/2.2.0.v201303151357/javax.el-2.2.0.v201303151357.jar
[ERROR] urls[41] = file:/Users/graham/.m2/repository/org/eclipse/jetty/orbit/com.sun.el/2.2.0.v201303151357/com.sun.el-2.2.0.v201303151357.jar
[ERROR] urls[42] = file:/Users/graham/.m2/repository/org/eclipse/jetty/orbit/org.eclipse.jdt.core/3.8.2.v20130121/org.eclipse.jdt.core-3.8.2.v20130121.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
Était-ce utile?

La solution

It eventually occurred to me to look in the lib/ext directory of the JDK (on Mac, the equivalent directories are /Library/Java/Extensions and $HOME/Library/Java/Extensions) and, lo and behold, there was a version of SLF4J in there, along with a bunch of other stuff. Removing the SLF4J jars got my build working normally again.

(Note: I have had the ATO's AUSKey software deposit things in the lib/ext directory before, which is why I thought to look there. I haven't yet checked to see whether AUSKey will still work after I removed SLF4J from the directory.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top