繁体   English   中英

构建 Intellij Scala 插件时出错

[英]Error building Intellij Scala Plugin

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

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

我正在使用 Idea 14.1.14。 已经下载了源码和downloadIdea。 导入项目后,将项目 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]

转到 File -> Project structure -> Global libraries 并在那里添加 Scala SDK。 就我而言,两个 SDK 已经存在(在 ivy 文件夹中)并可供选择。

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

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

请找到以下屏幕截图。

Intellij 全局库设置

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

外部图书馆

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

删除附加模块

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

查看scala站点以获取更多信息

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

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

将 JDK Home Path 替换为 JDK 的正确路径(在我的情况下为: /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

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

我希望它有帮助。

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

在此处输入图片说明

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM