Я хочу протестировать свой код против последней прореживающейся кромки Scala.Как сказать sbt использовать ночную сборку Scala 2.11, 2.12 или 2.13?
answer for Scala 2.10 больше не работает.
Что мне делать? не
Я хочу протестировать свой код против последней прореживающейся кромки Scala.Как сказать sbt использовать ночную сборку Scala 2.11, 2.12 или 2.13?
answer for Scala 2.10 больше не работает.
Что мне делать? не
Быстро:
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
там, чтобы проверить что-то в последнее-ночных РЕПЛ.
См. Также https://github.com/typelevel/scala/issues/135 ... для поддержки плагинов компилятора, вы захотите использовать «CrossVersion.patch», и пока вы на нем, вы также можете используйте 'scalaOrganization.value', чтобы получить совместимость с Typelevel Scala. –
Если вы обнаружите, что хотите сделать это часто, то также можно добавить условное добавление дополнительного распознавателя в вашу глобальную конфигурацию SBT (например, https: //gist.github.ком/ретроним/61bfa9585a303cdaa204b5916124bf0c) – retronym