В определении проекта Scala build.sbt можно ли определить минимальную версию sbt, которая требуется для создания проекта?
Есть ли способ определить требуемую версию sbt в build.sbt?
Ответ 1
project/build.properties
позволяет принудительно использовать sbt для конкретной версии. Если текущая версия установленного sbt отличается - sbt сам загрузит (при необходимости) версию, которую вы указали там:
sbt.version=0.12.0
См., например, Hello. Таким образом, вы, возможно, установили несколько версий sbt в своей системе - это просто баночки, помещенные в папку .sbt/boot/scala-{scala.version required by this sbt}/org.scala-sbt/sbt/{sbt.version}
. Фактически исполняемый файл Sbt ищет версию, указанную в project/build.properties
или (если она не указана), самая высокая версия, установленная в системе.
P.S. С точки зрения sbt-launcher
sbt является только одной зависимостью с малыми непересекающимися другими, такими как ansi.jar
, поэтому определение диапазона версий, таких как [0.13.1, 0.13.8]
, не имеет большого смысла, поскольку оно было бы эффективным только для конфликтующих транзитивных отпечатков. В противном случае достаточно указать более высокую возможную версию (которая будет компилироваться) - вы даже можете выбрать некоторую версию, которую у вас уже есть (и обновить проект sbt таким образом).