19

最新の最先端の Scala 2 ナイトリーに対して自分のコードをテストしたいと考えています。

Scala 2.10の答えはもう機能しません。

私は何をしますか?

4

1 に答える 1

31

Scala 2.12 または 2.13

クイックバージョン (sbt)

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

2.12.162.12 nightly の場合は、たとえば2.13.9;に置き換えます。どちらの場合も、そのブランチの次のリリースのバージョン番号です

の場合、 Travis-CI の 2.13.x または 2.12.x ブランチabcd123の最新のグリーン ビルドの SHA の最初の 7 文字を手動で置き換えます。

クイックバージョン (scala-cli)

scala-cli 0.1.2 以降では、次のコマンドで 2.13 nightly を取得できます。

scala-cli repl -S 2.nightly

最新の 2.12 ナイトリーが必要な場合は、バージョン番号を自分で入力し (確認方法については上記のメモを参照)、リゾルバーも指定する必要があります。

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

もちろん、repl動作するだけでなく、他の scala-cli サブコマンドも動作します。

より長い説明

-SNAPSHOTScala チームは、Scala のバージョンを発行しなくなりました。(これを再び開始することは、コミュニティへの貢献になる可能性があります。このチケットを参照してください。)

しかし、チームはナイトリー ビルドを公開しており、それぞれに独自の固定バージョン番号が付いています。ナイトリーのバージョン番号は、たとえば のようになり2.13.1-bin-abcd123ます。( -bin-sbt へのバイナリ互換性を示します。2.13.0 以降のすべての 2.13.x リリースは、相互にバイナリ互換性があります。)

(2018 年に) ナイトリーの発行を Jenkins から Travis-CI に移動したため、以前はここにあった古い Jenkins ベースの回答は機能しなくなりました。

これらのナイトリーの 1 つを使用するように sbt に指示するには、3 つのことを行う必要があります。

まず、ナイトリーが保持されるリゾルバーを追加します。

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 がリリースされるとすぐに、ナイトリーのバージョン番号が 2.13.2 に上がります。

マルチプロジェクト ビルドがある場合は、ビルド定義を変更するときに、これらの設定をすべてのプロジェクトで設定してください。++2.13.1-bin-abcd123または、 (sbt 0.13.x) または++2.13.1-bin-abcd123!(sbt 1.x; に含まれていないバージョンを強制的に使用するには、感嘆符を追加する必要があります) を使用して、sbt シェルで一時的に設定することもできますcrossScalaVersions

理想的には、Travis-CI に適切な SHA を自動的に要求する方法を提案します。これはおそらく Travis-CI の API を介して可能ですが、(私の知る限り) 誰もまだ調査していません。(ボランティアはいますか?)

これらの「ナイトリー」ビルドを非公式に呼んでいますが、技術的には誤った呼び方であることに注意してください。マージされたすべての PR に対して、いわゆる「ナイトリー」が構築されます。

スカラ 2.11

これ以上の 2.11.x リリースは計画されていないため、私たち (Lightbend の Scala チーム) も 2.11 ナイトリーを公開していません。

于 2016-11-16T02:03:02.780 に答える