Я хочу протестировать свой код на новейших ночных версиях Scala.
ответ для Scala 2.10 больше не работает.
Что я делаю?
Я хочу протестировать свой код на новейших ночных версиях Scala.
ответ для Scala 2.10 больше не работает.
Что я делаю?
Global / resolvers += "scala-integration" at
"https://scala-ci.typesafe.com/artifactory/scala-integration/"
scalaVersion := "2.13.1-bin-abcd123"
для ночного 2.12 замените, например. 2.12.9
за 2.13.1
; в любом случае это номер версии следующего выпуска в этой ветке
для abcd123
вручную подставьте первые 7 символов SHA последней зеленой сборки на 2.13 .x или 2.12.x ветка на Travis-CI.
Команда Scala больше не публикует -SNAPSHOT
версий Scala. (Запуск этого снова может быть вкладом сообщества; см. эту заявку. )
Но команда публикует ночные сборки, каждая со своим фиксированным номером версии. Номер версии nightly выглядит, например. 2.13.1-bin-abcd123
. (-bin-
сигнализирует о бинарной совместимости с sbt; все выпуски 2.13.x, начиная с 2.13.0, бинарно совместимы друг с другом.)
Старый ответ на основе Jenkins, который раньше был здесь, больше не работает, поскольку мы (в 2018 году) перенесли публикацию ночных новостей с Jenkins на Travis-CI.
Чтобы сказать sbt использовать одну из этих ночных сорочек, вам нужно сделать три вещи.
Во-первых, добавьте преобразователь, в котором хранятся ночные часы:
Global / resolvers += "scala-integration" at
"https://scala-ci.typesafe.com/artifactory/scala-integration/"
Во-вторых, укажите версию Scala:
scalaVersion := "2.13.1-bin-abcd123"
Но это не настоящий номер версии. Вручную замените номер версии, содержащий 7-значный SHA последней фиксации, в репозиторий scala/scala для который был опубликован ночной билд. Посмотрите на https://travis-ci.org/scala/scala/branches и вы увидите SHA в правом верхнем углу раздела 2.13.x (или 2.12.x). Например:
Как только будет выпущена версия 2.13.1, номер версии в nightly изменится на 2.13.2 и так далее.
Если у вас многопроектная сборка, обязательно задайте эти параметры для всех проектов при изменении определения сборки. Или вы можете временно установить их в оболочке sbt с помощью ++2.13.1-bin-abcd123
(sbt 0.13.x) или ++2.13.1-bin-abcd123!
(sbt 1.x; добавленный восклицательный знак необходим для принудительного использования версии, не включенной в crossScalaVersions
).
В идеале мы бы предложили автоматический способ запрашивать у Travis-CI правильный SHA. Предположительно это возможно через API Travis-CI, но (насколько мне известно) никто еще не изучал это. (Есть доброволец?)
Обратите внимание, что мы неофициально называем эти «ночные» сборки, но технически это неправильное название. На каждый объединенный PR строится так называемый «ночной».
В репозитории Scala может никогда не быть ветки 2.14.x, но если она есть, будут применяться следующие инструкции:
То же, что и выше, но посмотрите на ветку 2.14.x для SHA и версию номер начинается с 2.14.0-pre-
(обратите внимание, что -pre-
не -bin-
, так как бинарная совместимость еще не заморожена для 2.14).
Так, например, 2.14.0-pre-abcd123
.
Хотя дальнейшие выпуски 2.11.x остаются возможными, они не планируются, поэтому мы (команда Scala в Lightbend) больше не публикуем ночные выпуски 2.11.
CrossVersion.patch
, и пока вы это делаете, вы также можете использовать scalaOrganization.value
, чтобы получить совместимость со Scala на уровне типов.
- person Miles Sabin; 09.03.2017
org.scala-js#scalajs-compiler_2.12.8-bin-ebf8017;0.6.25: not found
, одно из решений (которое сработало для меня): libraryDependencies := libraryDependencies.value.filterNot(_.name == "scalajs-compiler"), addCompilerPlugin("org.scala-js" % "scalajs-compiler_2.12.7" % "0.6.25"),
- person Dale Wijnand; 24.10.2018
"foolib" %% "1.2.3"
на "foolib_2.12.7" % "1.2.3"
, это дает все, что опубликовано в полной версии Scala, обычно плагины компилятора (Scala.js, макрорай и т. д.)
- person Seth Tisue; 25.10.2018