我想在sbtPlugin和构建的其余部分之间共享一个公共版本变量
这是我正在尝试的:
在project/Build.scala:
object Versions {
scalaJs = "0.5.0-M3"
}
object MyBuild extends Build {
//Use version number
}
Run Code Online (Sandbox Code Playgroud)
在plugins.sbt:
addSbtPlugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" % Versions.scalaJs)
Run Code Online (Sandbox Code Playgroud)
结果是
plugins.sbt:15: error: not found: value Versions
addSbtPlugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" % Versions.scalaJs)
Run Code Online (Sandbox Code Playgroud)
有没有办法plugins.sbt在构建的其余部分之间共享版本号规范,例如project/Build.scala?
Eug*_*ota 13
如果你需要version在build.sbt和之间分享号码hello.scala,你通常会做什么?我不了解你,但我会使用我写的sbt-buildinfo.
这可以使用buildInfoKeys设置来配置,以显示任意键值version或某些自定义String值.我明白这不是你要问的,而是我的责任.
正如Jacek在" 入门指南"中指出并说明的那样,sbt中的构建是一个项目中定义的项目,该项目位于project目录下一级.为了区分构建,让我们将正常构建定义为正确的构建,并将构建定义为构建的正确构建.例如,我们可以说sbt插件是元构建中的根项目库.
现在让我们回到你的问题.我们如何在project/Build.scala和之间共享信息project/plugins.sbt?
我们可以通过创建project/project和添加sbt-buildinfo(meta-)元构建来定义另一个构建级别.
这是文件.
在project/project/buildinfo.sbt:
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.3.2")
Run Code Online (Sandbox Code Playgroud)
在project/project/Dependencies.scala:
package metabuild
object Dependencies {
def scalaJsVersion = "0.5.0-M2"
}
Run Code Online (Sandbox Code Playgroud)
在project/build.properties:
sbt.version=0.13.5
Run Code Online (Sandbox Code Playgroud)
在project/buildinfo.sbt:
import metabuild.Dependencies._
buildInfoSettings
sourceGenerators in Compile <+= buildInfo
buildInfoKeys := Seq[BuildInfoKey]("scalaJsVersion" -> scalaJsVersion)
buildInfoPackage := "metabuild"
Run Code Online (Sandbox Code Playgroud)
在project/scalajs.sbt:
import metabuild.Dependencies._
addSbtPlugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" % scalaJsVersion)
Run Code Online (Sandbox Code Playgroud)
在project/Build.scala:
import sbt._
import Keys._
import metabuild.BuildInfo._
object Builds extends Build {
println(s"test: $scalaJsVersion")
}
Run Code Online (Sandbox Code Playgroud)
所以有一些样板project/buildinfo.sbt,但版本信息在构建定义和插件声明中共享.
如果你很好奇在哪里BuildInfo定义,请查看project/target/scala-2.10/sbt-0.13/src_managed/.
| 归档时间: |
|
| 查看次数: |
3969 次 |
| 最近记录: |