jcgay / maven-color

A colorized Maven console

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

java.lang.ClassNotFoundException: org.slf4j.helpers.MessageFormatter

jcgay opened this issue · comments

Some plugins fail using maven-color with Maven 3.3.x.

Example with jetty-maven-plugin:

FAILED org.mortbay.jetty.plugin.JettyServer@56732912: java.lang.NoClassDefFoundError: org/slf4j/helpers/MessageFormatter
java.lang.ClassNotFoundException: org.slf4j.helpers.MessageFormatter
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) ~[plexus-classworlds-2.5.2.jar:na]
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271) ~[plexus-classworlds-2.5.2.jar:na]
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247) ~[plexus-classworlds-2.5.2.jar:na]
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239) ~[plexus-classworlds-2.5.2.jar:na]
    ... 21 common frames omitted
Wrapped by: java.lang.NoClassDefFoundError: org/slf4j/helpers/MessageFormatter
    at org.eclipse.jetty.util.log.JettyAwareLogger.log(JettyAwareLogger.java:619) ~[jetty-util-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.eclipse.jetty.util.log.JettyAwareLogger.info(JettyAwareLogger.java:314) ~[jetty-util-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.eclipse.jetty.util.log.Slf4jLog.info(Slf4jLog.java:74) ~[jetty-util-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.eclipse.jetty.server.Server.doStart(Server.java:271) ~[jetty-server-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.mortbay.jetty.plugin.JettyServer.doStart(JettyServer.java:65) ~[jetty-maven-plugin-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) ~[jetty-util-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:520) [jetty-maven-plugin-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:365) [jetty-maven-plugin-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.mortbay.jetty.plugin.JettyRunMojo.execute(JettyRunMojo.java:521) [jetty-maven-plugin-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) [maven-core-3.3.3.jar:3.3.3]
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) [maven-core-3.3.3.jar:3.3.3]
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) [maven-core-3.3.3.jar:3.3.3]
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) [maven-core-3.3.3.jar:3.3.3]
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) [maven-core-3.3.3.jar:3.3.3]
    at io.takari.maven.builder.smart.SmartBuilderImpl.buildProject(SmartBuilderImpl.java:275) [takari-smart-builder-0.4.0.jar:0.4.0]
    at io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run(SmartBuilderImpl.java:101) [takari-smart-builder-0.4.0.jar:0.4.0]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_40]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_40]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40]
java.lang.NoClassDefFoundError: org/slf4j/helpers/MessageFormatter
    at org.eclipse.jetty.util.log.JettyAwareLogger.log(JettyAwareLogger.java:619) ~[jetty-util-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.eclipse.jetty.util.log.JettyAwareLogger.info(JettyAwareLogger.java:314) ~[jetty-util-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.eclipse.jetty.util.log.Slf4jLog.info(Slf4jLog.java:74) ~[jetty-util-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.eclipse.jetty.server.Server.doStart(Server.java:271) ~[jetty-server-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.mortbay.jetty.plugin.JettyServer.doStart(JettyServer.java:65) ~[jetty-maven-plugin-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) ~[jetty-util-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:520) [jetty-maven-plugin-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:365) [jetty-maven-plugin-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.mortbay.jetty.plugin.JettyRunMojo.execute(JettyRunMojo.java:521) [jetty-maven-plugin-7.6.16.v20140903.jar:7.6.16.v20140903]
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) [maven-core-3.3.3.jar:3.3.3]
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) [maven-core-3.3.3.jar:3.3.3]
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) [maven-core-3.3.3.jar:3.3.3]
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) [maven-core-3.3.3.jar:3.3.3]
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) [maven-core-3.3.3.jar:3.3.3]
    at io.takari.maven.builder.smart.SmartBuilderImpl.buildProject(SmartBuilderImpl.java:275) [takari-smart-builder-0.4.0.jar:0.4.0]
    at io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run(SmartBuilderImpl.java:101) [takari-smart-builder-0.4.0.jar:0.4.0]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_40]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_40]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40]
Caused by: java.lang.ClassNotFoundException: org.slf4j.helpers.MessageFormatter
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) ~[plexus-classworlds-2.5.2.jar:na]
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271) ~[plexus-classworlds-2.5.2.jar:na]
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247) ~[plexus-classworlds-2.5.2.jar:na]
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239) ~[plexus-classworlds-2.5.2.jar:na]
    ... 21 common frames omitted
Jetty server exiting.
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 19.534 s (Wall Clock)
Finished at: 2015-06-13T10:58:47+02:00
Final Memory: 18M/142M
------------------------------------------------------------------------
Failed to execute goal org.mortbay.jetty:jetty-maven-plugin:7.6.16.v20140903:run (default-cli) on project example-webapp: Execution default-cli of goal org.mortbay.jetty:jetty-maven-plugin:7.6.16.v20140903:run failed: A required class was missing while executing org.mortbay.jetty:jetty-maven-plugin:7.6.16.v20140903:run: org/slf4j/helpers/MessageFormatter
-----------------------------------------------------
realm =    plugin>org.mortbay.jetty:jetty-maven-plugin:7.6.16.v20140903
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/Users/jcgay/.m2/repository/org/mortbay/jetty/jetty-maven-plugin/7.6.16.v20140903/jetty-maven-plugin-7.6.16.v20140903.jar
urls[1] = file:/Users/jcgay/.m2/repository/fr/jcgay/server-notifier/jetty-notifier/0.2-SNAPSHOT/jetty-notifier-0.2-SNAPSHOT.jar
urls[2] = file:/Users/jcgay/.m2/repository/fr/jcgay/send-notification/send-notification/0.3/send-notification-0.3.jar
urls[3] = file:/Users/jcgay/.m2/repository/com/google/code/findbugs/jsr305/2.0.3/jsr305-2.0.3.jar
urls[4] = file:/Users/jcgay/.m2/repository/com/google/code/jgntp/jgntp/1.2.1/jgntp-1.2.1.jar
urls[5] = file:/Users/jcgay/.m2/repository/com/google/guava/guava/r06/guava-r06.jar
urls[6] = file:/Users/jcgay/.m2/repository/org/jboss/netty/netty/3.2.1.Final/netty-3.2.1.Final.jar
urls[7] = file:/Users/jcgay/.m2/repository/com/squareup/okhttp/okhttp/2.0.0-RC1/okhttp-2.0.0-RC1.jar
urls[8] = file:/Users/jcgay/.m2/repository/com/squareup/okio/okio/1.0.0/okio-1.0.0.jar
urls[9] = file:/Users/jcgay/.m2/repository/com/squareup/mimecraft/mimecraft/1.1.1/mimecraft-1.1.1.jar
urls[10] = file:/Users/jcgay/.m2/repository/fr/jcgay/snp4j/snp4j/0.2/snp4j-0.2.jar
urls[11] = file:/Users/jcgay/.m2/repository/org/slf4j/slf4j-simple/1.7.12/slf4j-simple-1.7.12.jar
urls[12] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-util/7.6.16.v20140903/jetty-util-7.6.16.v20140903.jar
urls[13] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-webapp/7.6.16.v20140903/jetty-webapp-7.6.16.v20140903.jar
urls[14] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-xml/7.6.16.v20140903/jetty-xml-7.6.16.v20140903.jar
urls[15] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-servlet/7.6.16.v20140903/jetty-servlet-7.6.16.v20140903.jar
urls[16] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-security/7.6.16.v20140903/jetty-security-7.6.16.v20140903.jar
urls[17] = file:/Users/jcgay/.m2/repository/org/sonatype/sisu/sisu-inject-bean/2.1.1/sisu-inject-bean-2.1.1.jar
urls[18] = file:/Users/jcgay/.m2/repository/org/sonatype/sisu/sisu-guice/2.9.4/sisu-guice-2.9.4-no_aop.jar
urls[19] = file:/Users/jcgay/.m2/repository/org/codehaus/plexus/plexus-utils/2.0.6/plexus-utils-2.0.6.jar
urls[20] = file:/Users/jcgay/.m2/repository/org/sonatype/aether/aether-util/1.11/aether-util-1.11.jar
urls[21] = file:/Users/jcgay/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
urls[22] = file:/Users/jcgay/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
urls[23] = file:/Users/jcgay/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
urls[24] = file:/Users/jcgay/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
urls[25] = file:/Users/jcgay/.m2/repository/org/apache/maven/plugin-tools/maven-plugin-tools-api/2.9/maven-plugin-tools-api-2.9.jar
urls[26] = file:/Users/jcgay/.m2/repository/org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar
urls[27] = file:/Users/jcgay/.m2/repository/org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar
urls[28] = file:/Users/jcgay/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar
urls[29] = file:/Users/jcgay/.m2/repository/net/sf/jtidy/jtidy/r938/jtidy-r938.jar
urls[30] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-plus/7.6.16.v20140903/jetty-plus-7.6.16.v20140903.jar
urls[31] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/orbit/javax.transaction/1.1.1.v201105210645/javax.transaction-1.1.1.v201105210645.jar
urls[32] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-jndi/7.6.16.v20140903/jetty-jndi-7.6.16.v20140903.jar
urls[33] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-server/7.6.16.v20140903/jetty-server-7.6.16.v20140903.jar
urls[34] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/orbit/javax.servlet/2.5.0.v201103041518/javax.servlet-2.5.0.v201103041518.jar
urls[35] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-continuation/7.6.16.v20140903/jetty-continuation-7.6.16.v20140903.jar
urls[36] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/orbit/javax.mail.glassfish/1.4.1.v201005082020/javax.mail.glassfish-1.4.1.v201005082020.jar
urls[37] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/orbit/javax.activation/1.1.0.v201105071233/javax.activation-1.1.0.v201105071233.jar
urls[38] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-jmx/7.6.16.v20140903/jetty-jmx-7.6.16.v20140903.jar
urls[39] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-annotations/7.6.16.v20140903/jetty-annotations-7.6.16.v20140903.jar
urls[40] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/orbit/javax.annotation/1.1.0.v201108011116/javax.annotation-1.1.0.v201108011116.jar
urls[41] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/orbit/org.objectweb.asm/3.1.0.v200803061910/org.objectweb.asm-3.1.0.v200803061910.jar
urls[42] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-websocket/7.6.16.v20140903/jetty-websocket-7.6.16.v20140903.jar
urls[43] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-io/7.6.16.v20140903/jetty-io-7.6.16.v20140903.jar
urls[44] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-http/7.6.16.v20140903/jetty-http-7.6.16.v20140903.jar
urls[45] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/jetty-jsp/7.6.16.v20140903/jetty-jsp-7.6.16.v20140903.jar
urls[46] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/orbit/javax.servlet.jsp/2.1.0.v201105211820/javax.servlet.jsp-2.1.0.v201105211820.jar
urls[47] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/orbit/org.apache.jasper.glassfish/2.1.0.v201110031002/org.apache.jasper.glassfish-2.1.0.v201110031002.jar
urls[48] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/orbit/javax.servlet.jsp.jstl/1.2.0.v201105211821/javax.servlet.jsp.jstl-1.2.0.v201105211821.jar
urls[49] = file:/Users/jcgay/.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
urls[50] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/orbit/javax.el/2.1.0.v201105211819/javax.el-2.1.0.v201105211819.jar
urls[51] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/orbit/com.sun.el/1.0.0.v201105211818/com.sun.el-1.0.0.v201105211818.jar
urls[52] = file:/Users/jcgay/.m2/repository/org/eclipse/jetty/orbit/org.eclipse.jdt.core/3.7.1/org.eclipse.jdt.core-3.7.1.jar
Number of foreign imports: 1
import: Entry[import  from realm ClassRealm[project>fr.jcgay.server-notifier:example-webapp:0.2-SNAPSHOT, parent: ClassRealm[maven.api, parent: null]]]

-----------------------------------------------------: org.slf4j.helpers.MessageFormatter
-> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException

Maven with its new extension mechanism has introduced separated class realms as part of plexus container setup.
If a plugin is using SLF4J, it will try to read classes from a parent realm (slf4j-api is removed from its own realm) and will only have access to classes exposed by Maven (see https://github.com/apache/maven/blob/master/maven-core/src/main/resources/META-INF/maven/extension.xml).
org.slf4j.helpers package is not exposed at the moment...

You can patch your maven installation yourself by editing META-INF/maven/extension.xml in maven-core-3.3.x.jar to add <exportedPackage>org.slf4j.helpers.*</exportedPackage>.

I will report an issue in Maven tracker soon.

good~~

i have commit the same issue as yours

https://issues.apache.org/jira/browse/MNG-5845

Now that Maven 3.3.9 has been released, this should be fixed !

I had this issue, upgraded to 3.3.9, and now the build just hangs at the same place instead of erroring out.

huuuumm strange, which version of maven-color ?

@jcgay

# mvn --version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T10:41:47-06:00)
Maven home: /usr/local/Cellar/maven-deluxe/3.3.9-8/libexec
Java version: 1.8.0_101, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.6", arch: "x86_64", family: "mac"```

By the way, I would like to revise my last comment:

I had this issue, upgraded to 3.3.9, and now the build just hangs at the same place instead of erroring out.

Actually, "I had this issue" with the regular Homebrew "maven" install. When I Googled, I found this maven-color GitHub issue, and left a comment here without noticing that it was actually a fork of maven. So when you asked which version of maven-color, I realized my mistake, installed maven-color, and found that my hanging issue still happens with maven-color.

False alarm. Infinite loop in my code.

no problem :)