2015-04-23 2 views
5

Я использую плагин (sbt-scapegoat), который работает только для Scala 2.11.Условный addSbtPlugin на основе scalaVersion

Могу ли я получить условный addSbtPlugin на основе scalaVersion? Нравится:

if (scalaVersion.value.startsWith("2.11")) addSbtPlugin("com.sksamuel.scapegoat" %% "sbt-scapegoat" % "0.94.6") 

Как это сделать в SBT?

Jianshi

+0

Можете ли вы описать, что ваш вариант использования немного больше, пожалуйста? В частности, это многомодульная сборка? Перекрестная построен? Какие версии Scala? Я только спрашиваю, потому что это немного сложно ответить, так как лучший ответ зависит от вашей ситуации. –

+0

Привет, Дейл, Это одномодульная сборка. Я не использую функцию кросс-сборки. Версия Scala - 2.11.6 или 2.10.5 – huangjs

+0

Как это скала версия 2.11.6 или версия 2.10.5? Не уверен, что вы имеете в виду –

ответ

4

Т.Л., д-р Это не возможно, учитывая описание проблемы.

не менее две конфигурации сборки, участвующие в проекте sbt - настоящий проект (вы хотите сделать ставку на свои деньги) и мета-сборку для сборки вашего проекта. Да, я знаю, это звучит немного странно, но это очень мощная концепция IMHO.

См sbt is recursive:

каталог проекта является еще сборки внутри сборки, который знает, как построить свой билд. Чтобы отличать сборки, мы иногда используем термин «правильная сборка» для ссылки на вашу сборку и мета-сборку для ссылки на сборку в проекте. Проекты внутри метабайта могут делать все, что может сделать любой другой проект. Ваше определение сборки - это проект sbt.

sbt работает на платформе Scala и требует строгой версии. Невозможно изменить его, если вы не хотите тратить время на то, что вам действительно не нужно касаться в первую очередь :)

Что вы можете сделать, это применить плагин в project/plugins.sbt, а затем в проекте применить настройки плагина выборочно, за scalaVersion проекта не сама мета-сборка.

Это не так сложно, как говорится в ответе, но объяснение простых понятий, как правило, нелегкая задача для меня. Получайте удовольствие от sbt! Он очень скоро вернет вам деньги при правильном использовании.

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