問題タブ [scala-version-cross-build]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
366 参照

scala - クロスビルド アーティファクトがビルドされているが、`releaseCrossBuild := true` を使用していない

Scala v2.11 および v2.12 用にクロスビルドされたhttps://github.com/guardian/marleyのバージョンをリリースしようとしています。すべてのコードの依存関係が満たされ、両方とも+test期待+publishLocalSignedどおりに動作します。後者は間違いなく Scala v2.11 および v2.12 のアーティファクトを生成します。残念ながら、プラグインを実行するsbt releaseとScala v2.12 のアーティファクトsbt-sonatypeのみがアップロードされます。Scala v2.11 のアーティファクトは sonatype ステージング リポジトリにアップロードされません。

build.sbtファイルからの関連する sbt 設定は次のとおりです (フル バージョンは GitHub のリポジトリにあります)。

sbt releaseコマンド出力の完全なコピーを次に示します[info] Setting scala version to 2.11.12

0 投票する
1 に答える
50 参照

scala - SBT を使用して、特定の依存関係に対して異なるバージョンの scala を強制することは可能ですか?

私はscalaにかなり慣れていません。マルチモジュール プロジェクトを Scala 2.13 にアップグレードしているclass not foundときに、実行時に例外をスローする Scala 2.12 でコンパイルされたこの依存関係を見つけました。

このクラスは 2.13 で削除されました。2.12までしか利用できません。この依存関係のみをコンパイルするように v2.12 を強制する方法を探しています。

クロスビルドを使用しようとしましたが、依存関係の URL が以下を使用して構築されているため、コア ライブラリでは機能しません。

のように見える

また、クロスビルドは、互換性のある依存バージョンを持つさまざまな scala バージョンのサブモジュールをコンパイルできるようにする方法のようであり、個々の依存関係に scala バージョンを適用するためのものではありません。

編集1: これはビルド定義です:

依存関係は内部コモンズ ライブラリです。これは、コンパイル時にクラスscala/collection/mutable/ArrayOpsを使用します。scala-lang -> scala-libraryから。

私の質問:

  1. これを行うことさえ可能ですか?または、ここで述べたように 2.12 にダウングレードする唯一のオプションです
  2. 「コア」ライブラリが次のような外部ライブラリの URL パターンに従わないのはなぜですか [organisation]/[module](_[scalaVersion])(_[sbtVersion])/[revision]。`代わりに、次のように見えますhttps://repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.15/scala-library-2.12.15.pom