我认为这可能是新版本出现的问题,并且无法像旧版本那样解决,我得到了一个带有 sbt-buildinfo
插件的 Play Java 项目问题很常见是IntelliJ 一直说它无法解析该符号
这是文件:
可以找到一些解决方案IntelliJ Idea sbt managed source file在这里 sbt-buildinfo generated object cannot be referenced但是所提供的解决方案都对我没有帮助:
真正奇怪的是,如果我“取消将目录标记为生成的源”,然后将该 BuildInfo.scala
文件手动移动到包文件夹到 buildpkg
(我的自定义包)而不是 sbt-buildinfo
包,IntelliJ 看到那个文件,但是这个更改是无用的,因为文件将再次生成并且所有更改都将被丢弃:
这是我的build.sbt:
lazy val root = (project in file(".")).enablePlugins(PlayJava, BuildInfoPlugin)
.settings(
buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, sbtVersion, buildInfoBuildNumber,
"hostname" -> java.net.InetAddress.getLocalHost.getHostName,
"gitHash" -> sys.env.getOrElse("BITBUCKET_COMMIT", "No BITBUCKET_COMMIT set")
),
buildInfoPackage := "buildpkg",
buildInfoOptions += BuildInfoOption.ToJson,
buildInfoOptions += BuildInfoOption.BuildTime
)
scalaVersion := "2.12.3"
和我的plugins.sbt:
// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.5")
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.7.0")
所以我缺少的是什么解决方案
最佳答案
在 IntelliJ 的 sbt 设置中,启用设置“使用 sbt shell 进行构建和导入”,因为只有当 sbt 运行构建时才会生成源。
IntelliJ 目前只会正确更新生成的源代码,前提是它们位于正确的包目录中。对于 sbt-buildinfo,添加设置
buildInfoUsePackageAsPath := true
到你的
build.sbt
。
关于java - IntelliJ Idea 无法解析 Scala 管理源中的符号 (sbt-buildinfo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46763773/