2016-11-16 1 views

答えて

13

迅速:2行目の

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

、ジェンキンス(2.132.122.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を実行することができます。

+0

https://github.com/typelevel/scala/issues/135も参照してください。あなたが 'CrossVersion.patch'を使いたいコンパイラプラグインをサポートしていて'scalaOrganization.value'を使ってTypelevel Scalaの互換性も取得してください。 –

+0

これを頻繁にやりたい場合は、条件付きで追加のリゾルバをグローバルSBT設定に追加することもできます(例:https://gist.github)。com/retronym/61bfa9585a303cdaa204b5916124bf0c) – retronym

関連する問題