2015-08-29 4 views

ответ

4

Один из способов достижения этого - переменная среды. Обратите внимание, что в приведенном ниже примере кода я использую плагин sbt-release, но он должен быть легко адаптирован к скалярному.

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:_*) 

Первые чеки знач если мы системное свойство JENKINS установлен. В зависимости от этого значения мы добавляем ReleasePlugin в последовательность плагинов, которые необходимо отключить. И, наконец, во время определения нашего проекта мы фактически их отключили.

Если начать SBT с набором Дженкинс собственности (sbt -DJENKINS=true) ReleasePlugin отключенный

+0

+1 для правильного решения, но если бы мне пришлось выбирать между моим CI сервером без необходимости форматирования моих источников против захламления моего определения сборки например, я бы предпочел, чтобы CI сделал форматирование :( – Taig

+1

Вы могли бы создать пользовательскую функцию проекта, которая выполняет именно это, и помещает ее в вспомогательный объект, чем по крайней мере ваш build.sbt все равно будет чистым – matthias

Смежные вопросы