Tomcat: Widersprüchliche Modul-Versionen. Modul [groovy-alles ist geladen in der version 2.3.7 und Sie versuchen zu laden, die version 2.4.3
Habe ich ein jenkins-build server, baut mein grails-Projekt. Ich vor kurzem aktualisiert, um grails 2.5.0 und die groovy-comiler 2.4.3
So weit So gut. Das jenkins baut den Krieg wieder.
Aber wenn ich stellen Sie die war-auf meinem tomcat erhalte ich die Fehlermeldung:
log4j:ERROR Error initializing log4j: null
java.lang.ExceptionInInitializerError
at org.codehaus.groovy.runtime.InvokerHelper.<clinit>(InvokerHelper.java:61)
at groovy.lang.GroovyObjectSupport.<init>(GroovyObjectSupport.java:32)
at org.codehaus.groovy.grails.commons.AbstractGrailsApplication.<init>(AbstractGrailsApplication.java:45)
at org.codehaus.groovy.grails.commons.DefaultGrailsApplication.<init>(DefaultGrailsApplication.java:95)
at org.codehaus.groovy.grails.commons.DefaultGrailsApplication.<init>(DefaultGrailsApplication.java:91)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:379)
at org.codehaus.groovy.grails.plugins.log4j.web.util.Log4jConfigListener.createGrailsApplication(Log4jConfigListener.java:54)
at org.codehaus.groovy.grails.plugins.log4j.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:42)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1073)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.3.7 and you are trying to load version 2.4.3
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$DefaultModuleListener.onModule(MetaClassRegistryImpl.java:509)
at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromProperties(ExtensionModuleScanner.java:77)
at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromMetaInf(ExtensionModuleScanner.java:71)
at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModules(ExtensionModuleScanner.java:53)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:110)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:71)
at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:33)
... 25 more
Kann jemand mir sagen, was ich falsch konfiguriert haben-und wo schauen?
- Sieht aus wie Sie haben 2 Versionen von groovy im Klassenpfad. Haben Sie versucht reinigen, bevor der Krieg? Oder haben Sie die groovy Hinzugefügt anderswo in der tomcat-Instanz? Zum Beispiel in einem lib-Ordner?
- ja. Ich habe clean, compile, Krieg. Ich habe gerade installiert tomcat. Würde es helfen zu fügen mein classpath hier?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gradle selbst hängt davon ab, Groovy (auf version 2.3.7 für Ihre version von Gradle) und Grails (auf version 2.4.3). Mein Vorschlag ist, ein upgrade auf eine version von Gradle verwendet, die eine Groovy-version, die in der Nähe der eine zog in der von Grails. Gradle 2.8 hängt davon ab, Groovy 2.4.4, so dass es nah genug ist, um die version 2.4.3 auszuschließen API-Inkompatibilitäten.
Aber wie Gradle würde immer noch meckern, auch diese kleinere version mismatch, müssen Sie code hinzufügen, um Ihr
build.gradle
Datei explizit zu beheben, die version-Konflikt:Das problem kommt definitiv von der version von gradle, die Sie für Ihr baut. Während sschuberth s Vorschlag funktioniert, ich fand es nicht skalierbar, wo Sie mehrere Entwickler auf verschiedenen Versionen von gradle. Ihr build-Skript nicht in der Lage, für jede und jeden einzelnen von Ihnen. Der einzige Weg für Sie war alles ausschließen, alle Versionen:
Diese Weise, Ihre build-Skript wird Ihre Abhängigkeit verwaltete version von groovy, anstatt was auch immer Ihre gradle-version verwendet wird.
Müssen Sie code hinzufügen classpath 'org.codehaus.groovy:groovy-all:2.4.3' auf Projekt-level zu bauen.gradle und den Fehler beheben wird.