【问题标题】:Error building Intellij Scala Plugin构建 Intellij Scala 插件时出错
【发布时间】:2015-11-15 18:52:37
【问题描述】:

我正在尝试按照以下说明进行操作

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

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

不确定以上信息是否足够;但是在制作项目中我收到以下错误;有没有可能猜到我猜错了什么?

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]

【问题讨论】:

  • 你设置了 SCALA_HOME 吗?

标签: scala plugins intellij-idea


【解决方案1】:

转到文件 -> 项目结构 -> 全局库并在那里添加 Scala SDK。就我而言,两个 SDK 已经存在(在 ivy 文件夹中)并可供选择。

【讨论】:

    【解决方案2】:

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

    1. 检查 scala-SDK 是否存在于 File->Project Structure -> Global Libraries 下的全局库中。

    请看下面的截图。

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

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

    【讨论】:

      【解决方案3】:

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

      查看scala 网站了解更多信息

      【讨论】:

        【解决方案4】:

        就我而言,我必须在 Project structure -> SDKs 中指定正确的 JDK 主路径。

        由于我的 JAVA_HOME 变量尚未设置,Intellij 采用了一个不存在的默认值。

        用正确的 JDK 路径替换 JDK 主路径(在我的情况下,它是以下内容:/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

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

        希望对你有帮助。

        【讨论】:

          【解决方案5】:

          只有 Java 8 JDK 版本应该与 scala 一起使用。甚至更高的 JDK 版本。

          【讨论】:

          • 我使用更高版本的 java 和 scala 并且已经使用了多年。这是错误的。
          • 将“Project SDK”从 11.0 切换到 1.8 实际上帮助了我。那时我一直在使用 Scala 2.11。
          【解决方案6】:

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

          【讨论】:

            猜你喜欢
            • 2015-09-02
            • 1970-01-01
            • 2012-07-07
            • 2013-01-05
            • 2021-06-28
            • 2020-02-14
            • 2016-08-23
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多