問題タブ [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.
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
。
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から。
私の質問:
- これを行うことさえ可能ですか?または、ここで述べたように 2.12 にダウングレードする唯一のオプションです
- 「コア」ライブラリが次のような外部ライブラリの 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