2015-01-27 17 views
14

Dự án gió xây dựng tốt từ dòng lệnh SBT:Tại sao IDEA báo cáo "Lỗi: scalac: lỗi trong khi tải Object, Thiếu phụ thuộc" đối tượng scala trong trình biên dịch nhân bản "xây dựng scala khoe?

sbt package 
... 
info] Done packaging. 
[info] Packaging /shared/breeze/viz/target/scala-2.11/breeze-viz_2.11-0.11-SNAPSHOT.jar ... 
[info] Done packaging. 
[success] Total time: 238 s, completed Jan 27, 2015 9:40:03 AM 

Tuy nhiên, các lỗi sau đi lên nhiều lần khi làm Build|Rebuild dự án trong IntelliJ IDEA 14:

Error:scalac: error while loading Object, Missing dependency 'object scala in compiler mirror', required by /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/jre/lib/rt.jar(java/lang/Object.class) 

Dưới đây là toàn bộ stacktrace:

Error:scalac: Error: scala.tools.nsc.typechecker.Namers$Namer.enterExistingSym(Lscala/reflect/internal/Symbols$Symbol;)Lscala/tools/nsc/typechecker/Contexts$Context; 
java.lang.NoSuchMethodError: scala.tools.nsc.typechecker.Namers$Namer.enterExistingSym(Lscala/reflect/internal/Symbols$Symbol;)Lscala/tools/nsc/typechecker/Contexts$Context; 
    at org.scalamacros.paradise.typechecker.Namers$Namer$class.enterSym(Namers.scala:41) 
    at org.scalamacros.paradise.typechecker.Namers$$anon$3.enterSym(Namers.scala:13) 
    at org.scalamacros.paradise.typechecker.AnalyzerPlugins$MacroPlugin$.pluginsEnterSym(AnalyzerPlugins.scala:35) 
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$13.custom(AnalyzerPlugins.scala:429) 
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anonfun$2.apply(AnalyzerPlugins.scala:371) 
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anonfun$2.apply(AnalyzerPlugins.scala:371) 
    at scala.collection.immutable.List.map(List.scala:273) 
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:371) 
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsEnterSym(AnalyzerPlugins.scala:423) 
    at scala.tools.nsc.Global$$anon$1.pluginsEnterSym(Global.scala:463) 
    at scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:274) 
    at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:500) 
    at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:499) 
    at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:124) 
    at scala.collection.immutable.List.foldLeft(List.scala:84) 
    at scala.tools.nsc.typechecker.Namers$Namer.enterSyms(Namers.scala:499) 
    at scala.tools.nsc.typechecker.Namers$Namer.templateSig(Namers.scala:925) 
    at scala.tools.nsc.typechecker.Namers$Namer.moduleSig(Namers.scala:989) 
    at scala.tools.nsc.typechecker.Namers$Namer.getSig$1(Namers.scala:1526) 
    at scala.tools.nsc.typechecker.Namers$Namer.typeSig(Namers.scala:1541) 
    at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply$mcV$sp(Namers.scala:781) 
    at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply(Namers.scala:780) 
    at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply(Namers.scala:780) 
    at scala.tools.nsc.typechecker.Namers$Namer.scala$tools$nsc$typechecker$Namers$Namer$$logAndValidate(Namers.scala:1568) 
    at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1.apply(Namers.scala:780) 
    at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1.apply(Namers.scala:772) 
    at scala.tools.nsc.typechecker.Namers$$anon$1.completeImpl(Namers.scala:1684) 
    at scala.tools.nsc.typechecker.Namers$LockingTypeCompleter$class.complete(Namers.scala:1692) 
    at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1682) 
    at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1483) 
    at scala.reflect.internal.SymbolTable.openPackageModule(SymbolTable.scala:286) 
    at scala.tools.nsc.typechecker.Analyzer$packageObjects$$anon$2$$anon$4.traverse(Analyzer.scala:63) 
    at scala.tools.nsc.typechecker.Analyzer$packageObjects$$anon$2$$anon$4.traverse(Analyzer.scala:59) 
    at scala.reflect.api.Trees$Traverser$$anonfun$traverseStats$1$$anonfun$apply$1.apply$mcV$sp(Trees.scala:2498) 
    at scala.reflect.api.Trees$Traverser.atOwner(Trees.scala:2507) 
    at scala.reflect.api.Trees$Traverser.traverseStats(Trees.scala:2497) 
    at scala.reflect.internal.Trees$class.itraverse(Trees.scala:1326) 
    at scala.reflect.internal.SymbolTable.itraverse(SymbolTable.scala:16) 
    at scala.reflect.internal.SymbolTable.itraverse(SymbolTable.scala:16) 
    at scala.reflect.api.Trees$Traverser.traverse(Trees.scala:2475) 
    at scala.tools.nsc.typechecker.Analyzer$packageObjects$$anon$2$$anon$4.traverse(Analyzer.scala:66) 
    at scala.tools.nsc.typechecker.Analyzer$packageObjects$$anon$2$$anon$4.traverse(Analyzer.scala:59) 
    at scala.reflect.api.Trees$Traverser$$anonfun$traverseStats$1$$anonfun$apply$1.apply$mcV$sp(Trees.scala:2498) 
    at scala.reflect.api.Trees$Traverser.atOwner(Trees.scala:2507) 
    at scala.reflect.api.Trees$Traverser.traverseStats(Trees.scala:2497) 
    at scala.reflect.internal.Trees$class.itraverse(Trees.scala:1326) 
    at scala.reflect.internal.SymbolTable.itraverse(SymbolTable.scala:16) 
    at scala.reflect.internal.SymbolTable.itraverse(SymbolTable.scala:16) 
    at scala.reflect.api.Trees$Traverser.traverse(Trees.scala:2475) 
    at scala.tools.nsc.typechecker.Analyzer$packageObjects$$anon$2$$anon$4.traverse(Analyzer.scala:66) 
    at scala.tools.nsc.typechecker.Analyzer$packageObjects$$anon$2$$anon$4.traverse(Analyzer.scala:59) 
    at scala.reflect.api.Trees$Traverser.apply(Trees.scala:2513) 
    at scala.tools.nsc.typechecker.Analyzer$packageObjects$$anon$2.apply(Analyzer.scala:71) 
    at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply$mcV$sp(Global.scala:441) 
    at scala.tools.nsc.Global$GlobalPhase.withCurrentUnit(Global.scala:432) 
    at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:441) 
    at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:399) 
    at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:399) 
    at scala.collection.Iterator$class.foreach(Iterator.scala:750) 
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1202) 
    at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:399) 
    at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1500) 
    at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1487) 
    at scala.tools.nsc.Global$Run.compileSources(Global.scala:1482) 
    at scala.tools.nsc.Global$Run.compile(Global.scala:1580) 
    at xsbt.CachedCompiler0.run(CompilerInterface.scala:126) 
    at xsbt.CachedCompiler0.run(CompilerInterface.scala:102) 
    at xsbt.CompilerInterface.run(CompilerInterface.scala:27) 
    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:102) 
    at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:48) 
    at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41) 
    at org.jetbrains.jps.incremental.scala.local.IdeaIncrementalCompiler.compile(IdeaIncrementalCompiler.scala:29) 
    at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:26) 
    at org.jetbrains.jps.incremental.scala.remote.Main$.make(Main.scala:65) 
    at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:23) 
    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) 
+0

Xem http://stackoverflow.com/questions/23317326/trying-to-cross-compile-a-project-to-scala-2-11-fails-with-error-while-loading –

+0

@NickJacobs Điều khác câu hỏi không áp dụng cho ít nhất hai lý do. (a) như đã đề cập trong OP: biên dịch hoạt động trên dòng lệnh (Build.scala không bị hỏng!) (b) bạn có thực sự nhìn vào build.sbt khoe không? Nó không ghi đè phổ biến (và tôi đã không chạm vào nó) – javadba

+0

Điều tương tự cũng xảy ra với tôi trong Eclipse. – Carsten

Trả lời

3

Có phiên bản không khớp giữa trình biên dịch Scala và phiên bản thiên đường macro. Macro-paradise là một plugin trình biên dịch và được kết hợp chặt chẽ với trình biên dịch Scala, vì vậy nó được biên dịch chéo với một phiên bản Scala đầy đủ. Kiểm tra phiên bản Scala mà IntelliJ sử dụng và kiểm tra phiên bản Scala nào là thiên đường vĩ mô được biên dịch.

Không chắc chắn cách Intellij hoạt động, nhưng trong Eclipse có trang cấu hình "Cài đặt Scala" (tương tự như JDK). Bạn có thể đặt Cài đặt Scala khớp với phiên bản thiên đường. Có lẽ IntelliJ có khái niệm tương tự.

Các vấn đề liên quan