2016-11-16 7 views

ответ

13

Быстро:

resolvers += "scala-integration" at 
    "https://scala-ci.typesafe.com/artifactory/scala-integration/" 
scalaVersion := "2.12.2-bin-abcd123" 

во второй строке, заменить номер версии из Jenkins (2.13, 2.12, 2.11)

длинная версия:

Команда Скала нет дольше публикует версии -SNAPSHOT версий Scala. (Начиная с этого снова может быть вклад сообщества, см. this ticket.)

Но команда публикует ночные сборки, каждый со своим собственным номером фиксированной версии. Номер версии в ночное время выглядит, например, 2.12.1-bin-abcd123. (-bin- сигналы бинарная совместимость с SBT. 2,13 не стабилизируется бинарную совместимость еще, поэтому версии имеют -pre-, а не -bin-.)

Рассказывать SBT использовать один из этих nightlies, что вам нужно сделать три вещи.

Во-первых, добавьте распознаватель, где покоятся nightlies:

resolvers += "scala-integration" at 
    "https://scala-ci.typesafe.com/artifactory/scala-integration/" 

Во-вторых, указать версию Scala:

scalaVersion := "2.12.2-bin-abcd123" 

Но это не реальный номер версии. Замените номер версии, содержащий 7-символьный SHA фиксации в scala/scala repository, для которого была опубликована ночная сборка. Вы можете найти самую последнюю опубликованную версию, посмотрев здесь: 2.13 или 2.12 или 2.11).

Если у вас многострочная сборка, обязательно установите эти параметры для всех проектов. Если вы устанавливаете их интерактивно в оболочке sbt, ++2.12.2-bin-abcd123 делает трюк.

Добавление:

Если вы не хотите возиться с поиском номера версии, и если вы не возражаете, что делают ваши строить невоспроизводимым, вы можете поместить это в вашем build.sbt:

resolvers += "scala-integration" at 
    "https://scala-ci.typesafe.com/artifactory/scala-integration/"       
scalaVersion := { 
    val url = "https://scala-ci.typesafe.com/job/scala-2.12.x-integrate-bootstrap/lastStableBuild/artifact/jenkins.properties/*view*/" 
    val props = new java.util.Properties 
    props.load(new URL(url).openStream) 
    props.getProperty("version") 
} 

Я держу это в пустом проекте SBT, в удобном месте, так что я всегда могу быстро бегать sbt console там, чтобы проверить что-то в последнее-ночных РЕПЛ.

+0

См. Также https://github.com/typelevel/scala/issues/135 ... для поддержки плагинов компилятора, вы захотите использовать «CrossVersion.patch», и пока вы на нем, вы также можете используйте 'scalaOrganization.value', чтобы получить совместимость с Typelevel Scala. –

+0

Если вы обнаружите, что хотите сделать это часто, то также можно добавить условное добавление дополнительного распознавателя в вашу глобальную конфигурацию SBT (например, https: //gist.github.ком/ретроним/61bfa9585a303cdaa204b5916124bf0c) – retronym