IntelliJ Idea sbt 管理的源文件

20

我正在使用sbt-buildinfo插件,它可以从我的构建定义中生成Scala源代码,使我能够在Scala代码中引用项目名称、版本等信息。

它通过生成一个名为BuiltInfo.scala的文件来实现这一点,其内容如下:

package hello

case object BuildInfo {
  val name = "helloworld"
  val version = "0.1-SNAPSHOT"
  val scalaVersion = "2.10.3"
  val sbtVersion = "0.13.2"
}

target/scala-2.10/src_managed/main/sbt-buildinfo/BuildInfo.scala 中。

一切都已编译,我可以引用那些变量。

然而,IntelliJ Idea 无法将 BuildInfo.scala 视为托管源文件,因此不会停止向我显示错误。有什么想法吗?

谢谢!


你使用的是哪个版本的IntelliJ和Scala插件? - lpiepiora
IntelliJ Idea 13.0.3,不确定Scala插件。我在哪里可以检查? - Grega Kešpret
遗憾的是,两年后这仍然是一个问题。 :( - Nathaniel Ford
2017.1年了,这个问题还存在吗? - Justin Kaeser
1个回答

7
Grega,你在进行Play Framework项目吗?或者你有任何SBT子项目吗?我没有完整的答案,但可能会有一个线索。
当我使用sbt-buildinfosbt-scalaxb时,我的IDEA项目中出现了相同的问题。令人沮丧的是,它曾经不定期地工作过——通常需要大量修补,但莫名其妙地停止了。
我最终深入挖掘(并最终向JetBrains发布了Bug报告SCL-7182),并注意到根本原因是存在子项目。当存在时,IDEA无法正确识别根项目的src_managed,但可以识别子项目的src_managed
现在的解决方法是手动使用“项目结构”对话框向您的项目源添加正确的src_managed目录。
供参考,我正在运行IntelliJ IDEA 13.1.3上的Scala插件版本0.38.437。

此外,请参见IntelliJ IDEA在Controller中使用路由时报告突出显示错误的答案。 - Michael Ahlers
2
我还必须在子项目中删除对/target的排除才能使其正常工作。然后,我必须取消标记src_managed/main作为源代码,然后标记src_managed/main/java作为源代码。 - mikebridge
同样的问题在3年后仍然存在,使用Idea 2019.3和sbt 1.3。 - yeluolei

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接