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