作者:企鹅 | 来源:互联网 | 2023-01-12 21:36
我认为这可能是新版本中出现的一个问题,无法解决为旧版本,我得到了带有sbt-buildinfo
插件的PlayJava项目,这个问题确实很常见,因为IntelliJ一直说无法解决该符号
这是文件:
可以在IntelliJ Idea sbt托管的源文件中找到解决方案,并且在这里无法引用sbt-buildinfo生成的对象,但是提供的任何解决方案都不会对我有帮助:
真正奇怪的是,如果我“将目录取消标记为生成的源”,然后将该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")
所以我想念的是什么解决方案
1> Justin Kaese..:
在IntelliJ的sbt设置中,启用设置“使用sbt shell进行构建和导入”,因为仅在sbt运行构建时才生成源。
IntelliJ当前仅在生成的源位于正确的程序包目录中时才正确更新它们。对于sbt-buildinfo,添加设置
buildInfoUsePackageAsPath := true
给你build.sbt
。
您可以在IntelliJ->`Preferences`->`Build,Execution,Deployment`->`Build Tools`->`sbt`中找到`use sbt shell for build and import`选项。