2017-06-08 187 views
2

我試圖編譯一個使用maven的項目。嘗試編譯項目時Maven崩潰「執行Maven時出錯」。

運行mvn compile導致以下錯誤:

[ERROR] Error executing Maven. 
[ERROR] java.lang.IllegalStateException: Unable to load cache item 
[ERROR] Caused by: Unable to load cache item 
[ERROR] Caused by: Could not initialize class com.google.inject.internal.cglib.core.$ReflectUtils 

這發生在任何地方,我運行此,它並不一定要在項目目錄。

我在做什麼錯?

行家3.3.9,Ubuntu的17.04

mvn -X全輸出:

Apache Maven 3.3.9 
Maven home: /usr/share/maven 
Java version: 9-Ubuntu, vendor: Oracle Corporation 
Java home: /usr/lib/jvm/java-9-openjdk-amd64 
Default locale: en_GB, platform encoding: UTF-8 
OS name: "linux", version: "4.10.0-21-generic", arch: "amd64", family: "unix" 
[ERROR] Error executing Maven. 
com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalStateException: Unable to load cache item 
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2205) 
    at com.google.common.cache.LocalCache.get(LocalCache.java:3951) 
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3955) 
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4870) 
    at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4876) 
    at com.google.inject.internal.FailableCache.get(FailableCache.java:48) 
    at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:50) 
    at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:137) 
    at com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java:533) 
    at com.google.inject.internal.AbstractBindingProcessor$Processor$1.run(AbstractBindingProcessor.java:160) 
    at com.google.inject.internal.ProcessedBindingData.initializeBindings(ProcessedBindingData.java:44) 
    at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:123) 
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107) 
    at com.google.inject.Guice.createInjector(Guice.java:99) 
    at com.google.inject.Guice.createInjector(Guice.java:73) 
    at com.google.inject.Guice.createInjector(Guice.java:62) 
    at org.codehaus.plexus.DefaultPlexusContainer.addPlexusInjector(DefaultPlexusContainer.java:481) 
    at org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.java:206) 
    at org.apache.maven.cli.MavenCli.container(MavenCli.java:545) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:281) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.base/java.lang.reflect.Method.invoke(Method.java:547) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: java.lang.IllegalStateException: Unable to load cache item 
    at com.google.inject.internal.cglib.core.internal.$LoadingCache.createEntry(LoadingCache.java:79) 
    at com.google.inject.internal.cglib.core.internal.$LoadingCache.get(LoadingCache.java:34) 
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:116) 
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:291) 
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create(FastClass.java:65) 
    at com.google.inject.internal.BytecodeGen.newFastClass(BytecodeGen.java:204) 
    at com.google.inject.internal.DefaultConstructionProxyFactory.create(DefaultConstructionProxyFactory.java:55) 
    at com.google.inject.internal.ProxyFactory.create(ProxyFactory.java:159) 
    at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:90) 
    at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:29) 
    at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:37) 
    at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:33) 
    at com.google.inject.internal.FailableCache$1.load(FailableCache.java:37) 
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3540) 
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2321) 
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2284) 
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2199) 
    ... 28 more 
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.google.inject.internal.cglib.core.$ReflectUtils 
    at com.google.inject.internal.cglib.reflect.$FastClassEmitter.<init>(FastClassEmitter.java:67) 
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.generateClass(FastClass.java:77) 
    at com.google.inject.internal.cglib.core.$DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) 
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.generate(AbstractClassGenerator.java:329) 
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:93) 
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:91) 
    at com.google.inject.internal.cglib.core.internal.$LoadingCache$2.call(LoadingCache.java:54) 
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) 
    at com.google.inject.internal.cglib.core.internal.$LoadingCache.createEntry(LoadingCache.java:61) 
    ... 44 more 
+0

你是否運行-X進行全面調試? – farrellmr

+0

@farrellmr添加調試輸出到問題 – DanJAB

+0

maven乾淨時出現同樣的錯誤? – Thihara

回答

2

看起來更加穩定的版本像那個版本的Maven不能在Java 9上工作,但它在Java 8上工作。

確保您已安裝相關軟件包,例如..

sudo apt install openjdk-8-jre openjdk-8-jdk 

然後確保maven使用正確的版本。要做到這一點最簡單的方法是(如果需要創建它)以下行添加到~/.mavenrc末:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ 

(您可能需要看看周圍的/usr/lib/jvm/您需要,因爲它可能是確切的名稱對你的系統不同)

2

看起來你正在使用Java 9,嘗試切換到Java 8

+0

任何鏈接到一個有用的文章,如何最好地做到這一點? (或如何快速描述?) – DanJAB

+0

嗯,我' d寧可不必添加ppa – DanJAB

相關問題