2016-06-04 4 views
0

Я использую неподдерживаемый плагин, для которого требуется довольно старая версия sbt (без autoplugin) для некоторых задач. В других задачах требуются плагины, которые передают автозапуск. Более старый плагин работает с версией 13.1, а новые плагины работают с последними стабильными версиями.Возможно ли иметь две разные версии sbt для проекта одновременно

Могу ли я каким-то образом использовать два разных sbt взаимозаменяемо?

+0

Являются ли они обе версии в цикле 0.13.x (скажем, например, 0.13.2 и 0.13.9) или старый плагин для 0.12.x? Если старый плагин является общедоступным, вы можете указать ссылку на него? – sjrd

+0

13.1 и 13.9. Добавлено на вопрос – ayvango

ответ

1

sbt обратный бинарный совместим в младших версиях. Так конкретно, sbt 0.13.9 обратная бинарная совместимость с 0.13.1 (но не с 0.12.x). Это означает, что sbt 0.13.9 вполне способен использовать плагин sbt, который был построен для 0.13.1.

Так что вам не нужен ваш проект, чтобы иметь «две разные версии sbt». Вы используете только 0,13.9, и вы используете все необходимые вам плагины, в том числе встроенные для 0.13.1. Нет ничего особенного.

+0

В рассматриваемом плагине используется отражение и доступ к внутреннему API-интерфейсу sbt, поэтому нет обратной совместимости с ним. – ayvango

+1

Вы пробовали? Какая ошибка вы получаете? Во всяком случае, этот плагин действительно играет с огнем, и это меня насторожило бы использовать. Если это не «просто работает», вам следует серьезно подумать: а) найти замену или б) взять на себя его обслуживание и обновить его для более поздних версий sbt. – sjrd

+0

Было бы проще сделать некоторую магию оболочки, чтобы предоставить два скрипта sbt с разными версиями и различными определениями проектов – ayvango

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