4

要件のために変更できない依存関係が 2 つあります。どちらもmavenでscala依存関係を使用しています。

  <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>2.8.2</version>
  </dependency>

1 つの依存関係はプロジェクトに追加された jar ファイル ライブラリであり、もう 1 つの依存関係は maven 依存関係です。

問題は、バージョン 2.8.2 とバージョン 2.10.2 の両方に scala 依存関係が必要なことです。どちらも他のバージョン番号では機能しません。

要するに、jar ファイルが 2.8.2 のときに、2.10.2 を使用するように maven の依存関係を設定するにはどうすればよいですか?

4

1 に答える 1

1

この問題を解決するクレイジーな方法の 1 つは、2 つの別々の Maven アーティファクトを作成し、一方が他方を参照することです。

Scala version 1        Scala Version 2
      |                    |
     \ /                  \ /
  Art1fact 1 --------> Artifact 2

次に、アーティファクト 1 で、Maven Shade プラグインを使用して、依存関係のある jar を作成します (詳細については、Maven -Assembly-Pluginを参照)。重要な部分は、Artifact 2 が Artifact 1 のシェーディングされたバージョンのみを参照するため、Scala の依存関係を省略していることです。

( ProGuardを使用すると、同様の結果が得られます)

于 2013-06-24T12:18:04.263 に答える