【问题标题】:Set changing scala project dependency in Intellij IDEA 14 (for code completion and inspection)在 Intellij IDEA 14 中设置更改的 scala 项目依赖项(用于代码完成和检查)
【发布时间】:2015-07-01 16:30:22
【问题描述】:

我目前正在使用 SBT 在 IntelliJ IDEA 14 中开发一个多项目 Scala 应用程序。项目之间存在依赖关系(依赖项目),我需要 IntelliJ IDEA 来检查所有项目的代码,至少是我在当前项目中使用的项目(工作项目) )。我需要 IntelliJ IDEA 在依赖项目发生更改后自动更新此检查(例如语法突出显示)。

这是我尝试过的:

  • 我尝试将项目添加为库,但问题是 IntelliJ IDEA 似乎无法识别 .scala 文件和包。

  • 我还尝试将工作项目的已编译 .jar 设置为库,并在依赖项目中设置 sbt 以在每次更改文件时将项目打包为 .jar 文件:运行 @987654321 @ 在依赖项目的 sbt 控制台中。但似乎这个守护进程阻止了 IntelliJ IDEA 读取工作项目中新创建的 .jar 文件。如果我在进行更改后手动打包项目,它可以正常工作(我得到代码检查并且类被正确加载)。

  • 我也尝试过 SBT Multi-Project,但是虽然此设置适用于编译工作项目和依赖项目,但我没有得到我需要的 IntelliJ IDEA 代码检查,工作项目中没有的所有内容都是以红色突出显示。或者也许我做错了,这是代码(这就是我所做的一切):

    lazy val wcommon = RootProject(file("../WCommon")) val wrepository = Project(id = "application", base = file(".")).dependsOn(wcommon)

有什么建议吗?

【问题讨论】:

  • 您对 RootProject(...) 的最后一次尝试应该有效,我在许多多项目构建中都使用了相同的方法。您是否在 IDEA 中的构建文件上启用了自动导入?我遇到了索引/缓存问题,所以在确保正确导入构建文件后,我也会尝试重新启动 IDEA。如果您仍然有问题,我会检查以确保 WCommon 项目本身在 IDEA 中干净地打开。
  • 嘿,是啊!谢谢,它可以工作,但是当我运行编译器说的代码时,我现在遇到了问题:“错误:scalac:输出路径/Users/Work/Documents/wings/WRepository/target/scala-2.11/classes 在以下之间共享:模块'应用程序'生产,模块'wrepository'生产需要。“测试目录相同。我认为问题是由于手动将项目 ID 设置为“应用程序”而 Intellij IDEA 将项目 ID 设置为“wrepository”有什么想法吗?在IDEA的项目结构中我现在有三个模块:“application”、“wrepository”和“wcommon”(最后一个是项目依赖)
  • 已解决,我不得不写“wrepository”而不是“应用程序”。 @Karl,将您的评论发布为答案,以便我将其标记为正确答案:)

标签: scala intellij-idea sbt multi-project code-inspection


【解决方案1】:

您对 RootProject(...) 的最后一次尝试应该有效,我在许多多项目构建中使用了相同的方法。您是否在 IDEA 中的构建文件上启用了自动导入?我遇到了索引/缓存问题,所以在确保正确导入构建文件后,我也会尝试重新启动 IDEA。如果您仍然遇到问题,我会检查以确保 WCommon 项目本身在 IDEA 中干净地打开。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多