2013-05-02 72 views
16

我有this multi-module build configuration,我試圖讓工作,但每當我嘗試編譯失敗,錯誤如下項目:爲什麼sbt構建失敗,並顯示「MissingRequirementError:object scala.runtime in compiler mirror not found。」?

➜ postgresql-netty git:(multi-module) sbt clean compile 
[info] Loading global plugins from /Users/mauricio/.sbt/plugins 
[info] Loading project definition from /Users/mauricio/projects/scala/postgresql-netty/project 
[info] Set current project to db-async-base (in build file:/Users/mauricio/projects/scala/postgresql-netty/) 
[success] Total time: 0 s, completed May 1, 2013 11:18:29 PM 
[info] Updating {file:/Users/mauricio/projects/scala/postgresql-netty/}db-async-common... 
[info] Updating {file:/Users/mauricio/projects/scala/postgresql-netty/}db-async-base... 
[info] Resolving org.specs2#scalaz-core_2.10;7.0.0 ... 
[info] Done updating. 
[info] Resolving org.scala-lang#scala-library;2.10.1 ... 
[info] Done updating. 
[info] Updating {file:/Users/mauricio/projects/scala/postgresql-netty/}postgresql-async... 
[info] Resolving ch.qos.logback#logback-classic;1.0.9 ... 
[info] Compiling 16 Scala sources to /Users/mauricio/projects/scala/postgresql-netty/db-async-common/target/scala-2.10/classes... 
[info] Resolving org.specs2#scalaz-core_2.10;7.0.0 ... 
[info] Done updating. 
scala.reflect.internal.MissingRequirementError: object scala.runtime in compiler mirror not found. 
    at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:16) 
    at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:17) 
    at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:48) 
    at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:40) 
    at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:61) 
    at scala.reflect.internal.Mirrors$RootsBase.getPackage(Mirrors.scala:172) 
    at scala.reflect.internal.Mirrors$RootsBase.getRequiredPackage(Mirrors.scala:175) 
    at scala.reflect.internal.Definitions$DefinitionsClass.RuntimePackage$lzycompute(Definitions.scala:181) 
    at scala.reflect.internal.Definitions$DefinitionsClass.RuntimePackage(Definitions.scala:181) 
    at scala.reflect.internal.Definitions$DefinitionsClass.RuntimePackageClass$lzycompute(Definitions.scala:182) 
    at scala.reflect.internal.Definitions$DefinitionsClass.RuntimePackageClass(Definitions.scala:182) 
    at scala.reflect.internal.Definitions$DefinitionsClass.AnnotationDefaultAttr$lzycompute(Definitions.scala:1015) 
    at scala.reflect.internal.Definitions$DefinitionsClass.AnnotationDefaultAttr(Definitions.scala:1014) 
    at scala.reflect.internal.Definitions$DefinitionsClass.syntheticCoreClasses$lzycompute(Definitions.scala:1144) 
    at scala.reflect.internal.Definitions$DefinitionsClass.syntheticCoreClasses(Definitions.scala:1143) 
    at scala.reflect.internal.Definitions$DefinitionsClass.symbolsNotPresentInBytecode$lzycompute(Definitions.scala:1187) 
    at scala.reflect.internal.Definitions$DefinitionsClass.symbolsNotPresentInBytecode(Definitions.scala:1187) 
    at scala.reflect.internal.Definitions$DefinitionsClass.init(Definitions.scala:1252) 
    at scala.tools.nsc.Global$Run.<init>(Global.scala:1289) 
    at xsbt.CachedCompiler0.run(CompilerInterface.scala:87) 
    at xsbt.CachedCompiler0.run(CompilerInterface.scala:72) 
    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:601) 
    at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:73) 
    at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:35) 
    at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:29) 
    at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply$mcV$sp(AggressiveCompile.scala:71) 
    at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:71) 
    at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:71) 
    at sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:101) 
    at sbt.compiler.AggressiveCompile$$anonfun$4.compileScala$1(AggressiveCompile.scala:70) 
    at sbt.compiler.AggressiveCompile$$anonfun$4.apply(AggressiveCompile.scala:88) 
    at sbt.compiler.AggressiveCompile$$anonfun$4.apply(AggressiveCompile.scala:60) 
    at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:24) 
    at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:22) 
    at sbt.inc.Incremental$.cycle(Incremental.scala:52) 
    at sbt.inc.Incremental$.compile(Incremental.scala:29) 
    at sbt.inc.IncrementalCompile$.apply(Compile.scala:20) 
    at sbt.compiler.AggressiveCompile.compile2(AggressiveCompile.scala:96) 
    at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:44) 
    at sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:31) 
    at sbt.Compiler$.apply(Compiler.scala:79) 
    at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:574) 
    at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:574) 
    at sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:578) 
    at sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:578) 
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:49) 
    at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311) 
    at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311) 
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:41) 
    at sbt.std.Transform$$anon$5.work(System.scala:71) 
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232) 
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232) 
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18) 
    at sbt.Execute.work(Execute.scala:238) 
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232) 
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232) 
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160) 
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:30) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 
[error] (db-async-common/compile:compile) scala.reflect.internal.MissingRequirementError: object scala.runtime in compiler mirror not found. 
[error] Total time: 4 s, completed May 1, 2013 11:18:33 PM 

任何想法,這是什麼,我該如何解決?

回答

12

添加scala-library作爲項目依賴:

"org.scala-lang" % "scala-library" % "2.10.1" 

的伎倆。仍然不知道爲什麼這是必要的,但不是以前。

+0

我有同樣的問題,我通過在我的項目中刪除* all *額外的文件來解決它。不僅僅是所有的'target /'dirs,而且還有'project/target /'dirs(我認爲後者是解決它的那個,並且不會被'sbt clean'刪除)。 – Dan 2013-12-18 11:52:10

+2

我不認爲這是正確的解決方案。應該用* scalaVersion *指定的版本自動拉入* scala * lib。你應該嘗試'乾淨',然後重建一切。 – davidshen84 2015-02-04 02:37:27

16

的問題是,當你清除所有項目的依賴了,而使用:=++=+=到依賴關係構建定義添加到libraryDependencies設置你的,也就是說,在build.sbt

libraryDependencies := Dependencies.microservice 

隨着:=所有目前在libraryDependencies中設置的依賴關係已被清除,唯一可用的依賴關係是Dependencies.microservice(如上例所示)。

"org.scala-lang" % "scala-library" % "2.10.1"(或您使用的任何版本的scalaVersion)加起來只是一個解決方法,用於清除已經正確初始化的libraryDependencies設置。

這是很容易再現與下面的生成定義 - build.sbt

libraryDependencies := Seq() 

試圖編譯錯誤斯卡拉文件的結果 - 注意show libraryDependencies

➜ clear-library-dependencies xsbt 
JAVA_HOME=/Library/Java/JavaVirtualMachines/java8/Contents/Home 
SBT_OPTS= -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -Dfile.encoding=UTF-8 
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins 
[info] Updating {file:/Users/jacek/.sbt/0.13/plugins/}global-plugins... 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[info] Done updating. 
[info] Set current project to clear-library-dependencies (in build file:/Users/jacek/dev/sandbox/clear-library-dependencies/) 
[clear-library-dependencies]> show libraryDependencies 
[info] List() 
[clear-library-dependencies]> compile 
[info] Updating {file:/Users/jacek/dev/sandbox/clear-library-dependencies/}clear-library-dependencies... 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[info] Done updating. 
[info] Compiling 1 Scala source to /Users/jacek/dev/sandbox/clear-library-dependencies/target/scala-2.10/classes... 
[trace] Stack trace suppressed: run last compile:compileIncremental for the full output. 
[error] (compile:compileIncremental) scala.reflect.internal.MissingRequirementError: object scala.runtime in compiler mirror not found. 
[error] Total time: 0 s, completed Feb 3, 2015 10:36:08 PM 

更改構建以下(不可用,但只是爲了表明這一點):

libraryDependencies ++= Seq() 

結果將如下:

[clear-library-dependencies]> reload 
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins 
[info] Set current project to clear-library-dependencies (in build file:/Users/jacek/dev/sandbox/clear-library-dependencies/) 
[clear-library-dependencies]> show libraryDependencies 
[info] List(org.scala-lang:scala-library:2.10.4) 
[clear-library-dependencies]> compile 
[info] Updating {file:/Users/jacek/dev/sandbox/clear-library-dependencies/}clear-library-dependencies... 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[info] Done updating. 
[info] Compiling 1 Scala source to /Users/jacek/dev/sandbox/clear-library-dependencies/target/scala-2.10/classes... 
[success] Total time: 1 s, completed Feb 3, 2015 10:38:19 PM 
相關問題