私のコードを最新の出血エッジScalaに対してテストしたい。Scala 2.11,2.12、または2.13の夜間ビルドをsbtに使用するにはどうすればよいですか?
answer for Scala 2.10はもう動作しません。
私は何をしますか?
私のコードを最新の出血エッジScalaに対してテストしたい。Scala 2.11,2.12、または2.13の夜間ビルドをsbtに使用するにはどうすればよいですか?
answer for Scala 2.10はもう動作しません。
私は何をしますか?
迅速:2行目の
resolvers += "scala-integration" at
"https://scala-ci.typesafe.com/artifactory/scala-integration/"
scalaVersion := "2.12.2-bin-abcd123"
、ジェンキンス(2.13、2.12、2.11)からバージョン番号に置き換え
長いバージョン:
ScalaのチームなしScalaのバージョン-SNAPSHOT
を公開しています。
しかしチームは、それぞれ独自の固定バージョン番号を持つ夜間ビルドを公開しています。夜間のバージョン番号は、たとえば次のようになります。 2.12.1-bin-abcd123
。 (SBTへ-bin-
信号のバイナリ互換性。2.13はまだバイナリ互換性を安定していないので、バージョンは-pre-
ではなく-bin-
を持っています。)
は、次の3つのことを行う必要があり、これらのナイトリーのいずれかを使用する際に、SBTを伝えるために。
まず、ナイトリーが保存されているリゾルバ追加:
resolvers += "scala-integration" at
"https://scala-ci.typesafe.com/artifactory/scala-integration/"
第二に、Scalaのバージョンを指定:
scalaVersion := "2.12.2-bin-abcd123"
をしかし、それは本当のバージョン番号ではありません。夜間のビルドが公開されたscala/scala repositoryのコミットの7文字のSHAを含むバージョン番号を置き換えます。最新の公開バージョンは、2.13または2.12またはをご覧ください。
マルチプロジェクトビルドを使用している場合は、これらの設定をすべてのプロジェクトで必ず設定してください。あなたがsbtシェルで対話的にそれらを設定しているなら、++2.12.2-bin-abcd123
はそのトリックを行います。
補遺:
バージョン番号を調べるを台無しにしたくない、とあなたは、ビルド再現不可能作る気にしないならば、あなたはbuild.sbt
でこれを置くことができる場合は、次の
resolvers += "scala-integration" at
"https://scala-ci.typesafe.com/artifactory/scala-integration/"
scalaVersion := {
val url = "https://scala-ci.typesafe.com/job/scala-2.12.x-integrate-bootstrap/lastStableBuild/artifact/jenkins.properties/*view*/"
val props = new java.util.Properties
props.load(new URL(url).openStream)
props.getProperty("version")
}
私は便利な場所で、そうでない場合は、空のsbtプロジェクトでこれを維持するので、私はいつもすぐに最新の-毎晩REPLで何かをテストするためにそこにsbt console
を実行することができます。
https://github.com/typelevel/scala/issues/135も参照してください。あなたが 'CrossVersion.patch'を使いたいコンパイラプラグインをサポートしていて'scalaOrganization.value'を使ってTypelevel Scalaの互換性も取得してください。 –
これを頻繁にやりたい場合は、条件付きで追加のリゾルバをグローバルSBT設定に追加することもできます(例:https://gist.github)。com/retronym/61bfa9585a303cdaa204b5916124bf0c) – retronym