我想根据最新的 Scala 2 nightlies 测试我的代码。
Scala 2.10的答案不再适用。
我该怎么办?
Global / resolvers += "scala-integration" at
"https://scala-ci.typesafe.com/artifactory/scala-integration/"
scalaVersion := "2.13.9-bin-abcd123"
对于 2.12 每晚,替换2.12.16
为2.13.9
; 无论哪种情况,它都是该分支上下一个版本的版本号
对于,手动替换Travis-CI 上 2.13.x 或 2.12.x 分支上abcd123
最新绿色构建的 SHA 的前 7 个字符。
在 scala-cli 0.1.2 或更高版本上,您可以通过以下方式获得 2.13 nightly:
scala-cli repl -S 2.nightly
如果你想要最新的 2.12 nightly,你必须自己提供版本号(参见上面关于如何确定它的注释)并指定解析器:
scala-cli repl -S 2.12.16-bin-abcd123 \
--repository https://scala-ci.typesafe.com/artifactory/scala-integration
当然,不仅repl
可以,其他 scala-cli 子命令也可以。
Scala 团队不再发布-SNAPSHOT
Scala 版本。(再次开始可能是社区贡献;请参阅这张票。)
但该团队确实发布了每晚的构建,每个都有自己的固定版本号。nightly 的版本号如下所示2.13.1-bin-abcd123
。(-bin-
表示与 sbt 的二进制兼容性;自 2.13.0 以来的所有 2.13.x 版本都是二进制兼容的。)
过去基于 Jenkins 的旧答案不再适用,因为我们(在 2018 年)将 Nightlies 的出版从 Jenkins 转移到了 Travis-CI。
要告诉 sbt 使用其中一个 nightlies,你需要做三件事。
首先,添加保存 nightlies 的解析器:
Global / resolvers += "scala-integration" at
"https://scala-ci.typesafe.com/artifactory/scala-integration/"
其次,指定Scala版本:
scalaVersion := "2.13.1-bin-abcd123"
但这不是真正的版本号。手动替换版本号,其中包含发布夜间构建的scala/scala 存储库中最后一次提交的 7 字符 SHA 。查看https://travis-ci.org/scala/scala/branches,您会在 2.13.x(或 2.12.x)部分的右上角看到 SHA。例如:
2.13.1一出,nightly里的版本号就会涨到2.13.2,以此类推。
如果您有一个多项目构建,请确保在修改构建定义时在所有项目中设置这些设置。或者,您可以在 sbt shell 中使用++2.13.1-bin-abcd123
(sbt 0.13.x) 或++2.13.1-bin-abcd123!
(sbt 1.x; 添加感叹号来强制使用未包含在其中的版本) 临时设置它们crossScalaVersions
。
理想情况下,我们会建议一种自动方式来向 Travis-CI 询问正确的 SHA。这大概可以通过 Travis-CI 的 API 实现,但是(据我所知)还没有人研究过。(有志愿者吗?)
请注意,我们非正式地将这些称为“夜间”构建,但从技术上讲,这是用词不当。为每个合并的 PR 构建一个所谓的“夜间”。
没有进一步的 2.11.x 版本计划,所以我们(Lightbend 的 Scala 团队)也不再发布 2.11 nightlies。