更改 build.sbt 自定义任务中的版本

2024-05-13

我在 build.sbt 中定义了一个自定义任务:

val doSmth = taskKey[Unit]("smth")
doSmth := {
   version := "1.0-SNAPSHOT"
}

但它不会改变版本。我真正想要的是自定义 sbt 发布任务,它将始终将相同的版本发布到我添加的存储库。除此之外,正常sbt assembly流程正在使用增量版本方案。所以我想创建一个任务来设置版本,执行 sbt 发布,然后将版本返回到以前的值。我已经完成了所有操作,但无法更改版本。有没有办法从 build.sbt 更改 sbt 设置的值(因为它们是 vals)?

这有可能吗?我想我也可以复制代码sbt publish命令(正如有人在一个主题中提到的那样),但在我看来这是最糟糕的解决方案。

Thanks


我找到了一种可能的解决方案,通过更改版本sbt publish任务,但在 SBT 中确实很奇怪且不直观。例如,我尝试过

version := sys.env.getOrElse("BUILD_NUMBER", "1.0")

version in publish := "SNAPSHOT-1.0"

我还尝试在测试和编译配置中定义不同的版本:

version in Compile := sys.env.getOrElse("BUILD_NUMBER", "1.0")
version in Test: = "SNAPSHOT-1.0

但我无法让它发挥作用。 SBT 的行为真的很奇怪。是否有可能在一项任务中使用某些设置的值与在所有其他任务中使用的值不同?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 build.sbt 自定义任务中的版本 的相关文章

随机推荐