1
我正在使用Scalariform AutoPlugin,并希望在CI服务器上运行测试时将其禁用。有没有这样做的选择?从sbt命令行禁用AutoPlugin
我正在使用Scalariform AutoPlugin,并希望在CI服务器上运行测试时将其禁用。有没有这样做的选择?从sbt命令行禁用AutoPlugin
实现此目的的一种方法是通过环境变量。请注意,在我的示例代码下面我使用sbt-release插件,但它应该很容易采用scalariform。
lazy val isJenkins = sys.props.get("JENKINS").isDefined
lazy val disPlugins = if(isJenkins) Seq(ReleasePlugin) else Seq.empty
lazy val root = (project in file(".")).disablePlugins(disPlugins:_*)
第一个val检查是否设置了系统属性JENKINS
。根据这个值,我们将ReleasePlugin添加到需要禁用的插件序列中。最后,在我们的项目定义中,我们确实禁用了这些。
如果与詹金斯属性集(sbt -DJENKINS=true
)的ReleasePlugin被禁用
+1一个有效的解决方案,但SBT开始,如果我有我的CI服务器之间决定不必要格式化我的消息来源与塞满我的构建定义像这样,我宁愿让CI做格式化:( – Taig
你可以创建一个自定义的项目函数来完成这个工作,并把它放到一个辅助对象中,至少你的build.sbt仍然是干净的 – matthias