如何告诉SBT或Scala-cli使用Scala 2.12或2.13的夜间构建? [英] How do I tell sbt or scala-cli to use a nightly build of Scala 2.12 or 2.13?

查看:29
本文介绍了如何告诉SBT或Scala-cli使用Scala 2.12或2.13的夜间构建?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想针对最新的尖端Scala 2夜间测试我的代码。

answer for Scala 2.10不再起作用。

我该怎么办?

推荐答案

Scala2.12或2.13

快速版本(SBT)

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

对于2.12夜间,则为替身,例如,对于2.13.1,则为2.12.9;在任何一种情况下,它都是该分支上的下一个版本的版本号

对于abcd123,请手动替身最新绿色版本on the 2.13.x or 2.12.x branch on Travis-CI的前7个字符。

快速版本(scala-cli)

在scala-cli 0.1.0或更高版本上

scala-cli repl -S 2.13.1-bin-abcd123 
  --repository https://scala-ci.typesafe.com/artifactory/scala-integration/

有关如何填写实际版本号的说明,请参阅上面的说明。

当然,repl不仅有效,其他scala-cli子命令也有效。

详细说明

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

但是团队确实每晚发布构建,每个构建都有自己的固定版本号。每晚的版本号如2.13.1-bin-abcd123。(-bin-表示与SBT二进制兼容;从2.13.0开始的所有2.13.x版本彼此都是二进制兼容的。)

以前基于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"

但这不是真正的版本号。手动替身一个版本号,该版本号包含scala/scala repository中最后一次提交的7个字符的SHA,并为其发布夜间构建。查看https://travis-ci.org/scala/scala/branches,您将在2.13.x(或2.12.x)部分的右上角看到SHA。例如:

2.13.1一发布,夜间的版本号就会跳到2.13.2,以此类推。

如果您有多项目生成,请确保在修改生成定义时跨所有项目设置这些设置。或者,您可以使用++2.13.1-bin-abcd123(SBT 0.13.x)或++2.13.1-bin-abcd123!(SBT 1.x;添加的感叹号是强制使用crossScalaVersions中未包含的版本所必需的)将它们临时设置在SBT shell中。

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

请注意,我们非正式地将这些"夜间"构建称为"夜间"构建,但从技术上讲,这是一个用词不当的说法。为每个合并的PR构建一个所谓的"夜间"。

Scala 2.11

没有计划发布更多的2.11.x版本,因此我们(Lightbend的Scala团队)也不再发布2.11夜间报道。

这篇关于如何告诉SBT或Scala-cli使用Scala 2.12或2.13的夜间构建?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆