我如何告诉sbt使用每晚构建的Scala 2.12或2.13?

时间:2016-11-16 02:03:03

标签: scala sbt nightly-build

我想测试我的代码,反对最新的Scala nightlies。

answer for Scala 2.10不再有用了。

我该怎么办?

1 个答案:

答案 0 :(得分:21)

Scala 2.12

快速版

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

,手动替换最新绿色版本on the 2.12.x branch on Travis-CI的SHA的前7个字符。

更长的解释

Scala团队不再发布Scala的-SNAPSHOT版本。 (再次开始可能是社区贡献;请参阅this ticket。)

但该团队确实发布了夜间版本,每个版本都有自己的固定版本号。每晚的版本号看起来像例如2.12.7-bin-abcd123。 (-bin-表示与sbt的二进制兼容性;自2.12.0以来的所有2.12.x版本都是二进制兼容的。)

由于我们最近(2018年3月)将詹金斯的夜魇发布到Travis-CI上,因此以前在这里的旧詹金斯答案已经不再适用了。

告诉sbt使用其中一个夜莺,你需要做三件事。

首先,添加保存夜莺的解析器:

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

其次,指定Scala版本:

scalaVersion := "2.12.7-bin-abcd123"

但这不是真正的版本号。手动替换包含发布每晚构建的scala/scala repository中最后一次提交的7个字符SHA的版本号。查看https://travis-ci.org/scala/scala/branches,您将看到2.12.x部分右上角的SHA。例如:

enter image description here

一旦发布2.12.7,每晚的版本号将达到2.12.8,依此类推。

如果您有多项目构建,请确保在修改构建定义时在所有项目中设置这些设置。或者,您可以使用++2.12.7-bin-abcd123(sbt 0.13.x)或++2.12.7-bin-abcd123!(sbt 1.x)在sbt shell中临时设置它们;添加的感叹号是强制未包含在{{{{ 1}}待用)。

理想情况下,我们建议以自动方式向Travis-CI询问正确的SHA。这可能是通过Travis-CI的API实现的,但(据我所知)还没有人研究过它。 (有志愿者吗?)

Scala 2.13

如上所述,但请查看2.13.x branch 对于SHA,版本号以crossScalaVersions开头(注意2.13.0-pre-而不是-pre-, 因为对于2.13而言,二进制兼容性尚未被冻结。

例如,-bin-

Scala 2.11

虽然仍然可以进一步发布2.11.x版本,但没有计划,所以我们(Lightbend的Scala团队)不再发布2.11晚了。