我想編譯項目在Intellij IDEA
它使用Scala 2.10
並要求Java 7
編譯。Intellij IDEA:Scala 2.10項目與Java 7,UnsupportedClassVersionError
我使用jenv
工具,命令行編譯(我已經安裝了它是爲Intellij IDEA
插件以及以防萬一)和後我使用jenv
Java 7
並與該行編譯Maven
項目:
jenv exec mvn clean install
一切正常。
但是,當我使用Intellij IDEA
與Scala
插件編譯失敗。我已經Java 1.7
設置中設置隨處可見,我發現,在Scala Compiler Server
,在Java Compiler
,項目配置等故障堆棧跟蹤如下:
Error:scalac: Error: org/jetbrains/jps/incremental/messages/BuildMessage$Kind
java.lang.UnsupportedClassVersionError: org/jetbrains/jps/incremental/messages/BuildMessage$Kind
at org.jetbrains.jps.incremental.scala.local.AbstractCompiler$ClientReporter.log(AbstractCompiler.scala:92)
at xsbt.DelegatingReporter.info0(DelegatingReporter.scala:39)
at scala.tools.nsc.reporters.Reporter$$anonfun$error$1.apply$mcV$sp(Reporter.scala:70)
at scala.tools.nsc.reporters.Reporter$$anonfun$error$1.apply(Reporter.scala:70)
at scala.tools.nsc.reporters.Reporter$$anonfun$error$1.apply(Reporter.scala:70)
at scala.tools.nsc.reporters.Reporter.withoutTruncating(Reporter.scala:42)
at scala.tools.nsc.reporters.Reporter.error(Reporter.scala:70)
at scala.tools.nsc.Global.globalError(Global.scala:228)
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1564)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1552)
at scala.tools.nsc.Global$Run.compile(Global.scala:1661)
at xsbt.CachedCompiler0.run(CompilerInterface.scala:115)
at xsbt.CachedCompiler0.run(CompilerInterface.scala:94)
at xsbt.CompilerInterface.run(CompilerInterface.scala:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:101)
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:47)
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41)
at org.jetbrains.jps.incremental.scala.local.IdeaIncrementalCompiler.compile(IdeaIncrementalCompiler.scala:32)
at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:26)
at org.jetbrains.jps.incremental.scala.remote.Main$.make(Main.scala:68)
at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:25)
at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.martiansoftware.nailgun.NGSession.run(NGSession.java:319)
據我所知,這意味着編譯後的代碼的Java版本和不匹配試圖運行它的版本。我也看到Unable to copile scala anymore問題創建爲JetBrains
。
那麼,有什麼辦法可以在Intellij
建立這個項目?由於我堅持這一點,無法繼續。
任何其他庫需要1.7。因此,如果您的依賴性爲1.8,則需要查找1.7版本 – efekctive
不確定這是否是問題。我試圖從.m2文件夾中刪除所有的依賴關係,用java 7重新編譯它,但仍然出現錯誤。 –
如果以1.8字節代碼再次下載依賴關係,則不會解決任何問題。你是否還在1.7 jvm下運行所有東西? – efekctive