【发布时间】:2018-03-30 22:44:00
【问题描述】:
我正在从 0.13.x 的激活器迁移到 sbt 1.x。
我曾经像这样编译我的模块$ activator clean compile publish-local -Dversion=1
现在,由于 activator 已被弃用,我正在尝试使用 sbt 进行此操作,但我找不到应该如何迁移到类似 $ sbt clean compile publish-local -Dversion=1 的东西?
【问题讨论】:
我正在从 0.13.x 的激活器迁移到 sbt 1.x。
我曾经像这样编译我的模块$ activator clean compile publish-local -Dversion=1
现在,由于 activator 已被弃用,我正在尝试使用 sbt 进行此操作,但我找不到应该如何迁移到类似 $ sbt clean compile publish-local -Dversion=1 的东西?
【问题讨论】:
Activator(CLI 部分)只是 sbt 的包装器,带有一些自定义命令。所以你写的应该是一样的,期待蛇形案例被弃用而有利于骆驼案例:
sbt clean compile publishLocal
如果您需要使用 -D 将 var 传递给 Java 运行时,您必须将其放在任何命令之前:sbt -Dversion=1 ...。
注意您使用batch mode 来运行命令:
以批处理模式运行每次都需要 JVM spinup 和 JIT,因此您的构建会运行得更慢。对于日常编码,我们建议使用 sbt shell 或如下所述的持续构建和测试功能。
要遵循此建议,只需运行sbt,然后一一输入这些命令。或者要按顺序运行它们,请输入; clean; compile; publishLocal。
【讨论】:
sbt -Dversion=1 clean compile publishLocal。 -Dversion 是version := System.getProperty("version") 在build.sbt 中的参数
-Dversion的答案。