我想将sbt-release插件与Play框架结合使用。
插件从文件version.sbt
中读取当前版本号。它的内容是
version in ThisBuild := "0.41.0-SNAPSHOT"
我想在我的主构建文件中使用此设置,但变量version
的类型为sbt.SettingKey
。
有一个evaluate
方法,但就我而言,我无法弄清楚要传递什么来获取我在version.sbt
中定义的字符串。
答案 0 :(得分:2)
我尝试了接受的答案的解决方案,但它没有编译。 (播放2.1.5)
[error] (ss: sbt.Project.Setting[_]*)sbt.Project <and>
[error] => Seq[sbt.Project.Setting[_]]
[error] cannot be applied to (Seq[sbt.ModuleID])
[error] val main = play.Project(appName).settings(appDependencies).settings(releaseSettings).settings(
[error] ^
[error] one error found
相反,我提出了这个解决方案:
...
lazy val appSettings = Defaults.defaultSettings ++ ... ++ releaseSettings
val main = play.Project(appName, dependencies = appDependencies, settings = appSettings).settings(
version <<= version in ThisBuild,
...
)
答案 1 :(得分:0)
这是play.Project
构造函数的一个小缺点,它不包括静态版本号,而不是设置键中的一个。
但是,唯一必需的参数是应用程序名称,因此您可以从以下内容切换:
val main = play.Project(appName, appVersion, appDependencies, settings =
Defaults.defaultSettings ++ releaseSettings ).settings(...)
到
val main = play.Project(appName).settings(appDependencies).
settings(releaseSettings).settings(...)
通常,version.sbt
中定义的版本应自动在此处获取。如果不是,您可以随时添加上述内容:
.settings(applicationVersion <<= version in ThisBuild)