构建Intellij Scala插件时出错

时间:2015-08-21 18:15:50

标签: scala plugins intellij-idea

我正在尝试按照

中的说明操作

https://confluence.jetbrains.com/display/SCA/Setting+up+Scala+plugin+project+in+IntelliJ+IDEA

我正在使用Idea 14.1.14。 已经下载了源码并下载了想法。 导入项目后,将Project SDK设置为1.7。

不确定以上是否足够信息继续;但在make项目中我得到以下错误;是否有可能猜出我的错误?

Error:scalac: error while loading Object, Missing dependency 'object scala in compiler mirror', required by /usr/lib/jvm/java-7-oracle/jre/lib/rt.jar(java/lang/Object.class)
Error:scalac: Error: object scala in compiler mirror not found.
scala.reflect.internal.MissingRequirementError: object scala in compiler mirror not found.
    at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:17)
    at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:18)
    at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:53)
    at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:66)
    at scala.reflect.internal.Mirrors$RootsBase.getPackage(Mirrors.scala:173)
    at scala.reflect.internal.Definitions$DefinitionsClass.ScalaPackage$lzycompute(Definitions.scala:161)
    at scala.reflect.internal.Definitions$DefinitionsClass.ScalaPackage(Definitions.scala:161)
    at scala.reflect.internal.Definitions$DefinitionsClass.ScalaPackageClass$lzycompute(Definitions.scala:162)
    at scala.reflect.internal.Definitions$DefinitionsClass.ScalaPackageClass(Definitions.scala:162)
    at scala.reflect.internal.Definitions$DefinitionsClass.init(Definitions.scala:1377)
    at scala.tools.nsc.Global$Run.<init>(Global.scala:1229)
    at xsbt.CachedCompiler0$$anon$2.<init>(CompilerInterface.scala:116)
    at xsbt.CachedCompiler0.run(CompilerInterface.scala:116)
    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:62)
    at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:20)
    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)
Warning:scalac: No 'scala-library*.jar' in module dependencies [compiler_settings]

6 个答案:

答案 0 :(得分:3)

转到文件 - &gt;项目结构 - &gt;全局库并在那里添加Scala SDK。就我而言,已经存在两个SDK(在常春藤文件夹中)并提供选择。

答案 1 :(得分:2)

即使在拥有兼容版本的java,sbt和scala SDK之后,我最近也遇到了类似的问题,但是在将sbt项目导入Intellij中时发现了导致此错误的原因很少。

  1. 检查scala-SDK是否存在于文件->项目结构->全局库下的全局库中。

请找到以下屏幕截图。

Intellij global library settings

  1. 即使解决了第一个问题,您仍然会遇到此问题。然后查找您放置在/ lib文件夹下的外部依赖项,如果可能,请检查该jar的校验和,以确保其大小正确。这应该可以解决问题。

external libarires

除上述问题外,在IntelliJ中打开项目时,您可能最终在代码中遇到依赖项源链接问题。这是因为文件->项目模块->模块下存在其他根模块。在模块面板中,除了projexctxx-process和projectxx-process-build之外,还将看到projectxxx-src和projectxx-test。因此,请删除projectxx-src和projectxx-test。

Remove additional modules

答案 2 :(得分:0)

您必须拥有Java 8 JDK才能使Scala工作

请访问scala网站以获取更多信息

答案 3 :(得分:0)

就我而言,我必须在项目结构-> SDK 中指定正确的JDK主页路径。

由于尚未设置我的 JAVA_HOME 变量,因此Intellij使用的默认值不存在。

用JDK的正确路径替换JDK主页路径(在我的情况下为: /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home )< / p>

用文件夹的名称替换“ adoptopenjdk-8.jdk”(可能是jdk_1.8.0_xxx.jdk)

希望对您有帮助。

答案 4 :(得分:0)

仅应在侧面scala上使用Java 8 JDK版本。甚至没有更高的JDK版本。

答案 5 :(得分:0)

enter image description here

最好也在这里查看。它解决了我自己的构建错误