[解決済み] Maven: ライブラリによって追加された依存関係をオーバーライドする方法
質問
以下は私の一般的な問題です。
私のプロジェクトPはAに依存しており、Bに依存しており、Cに依存しており、Dのバージョン1.0.1に依存しています。
Dのバージョン1.0.1に問題があり、別のモジュールを強制的に使用したいのですが、どうしたらいいですか?Dへの依存関係を直接追加していないので、私のプロジェクトのPOMでこれをどのように宣言すればよいのかわかりません。それはDへの依存を宣言したCです。
重要:この場合、バージョンだけでなく、group &アーティファクトも変更されます。つまり、単に依存関係のバージョンをオーバーライドするのではなく、あるモジュールを除外して別のモジュールをインクルードすることが重要なのです。
具体的には、DはStAXで、1.0.1では バグ . バグのメモによると、stax-api-1.0.1 (maven GroupId = stax) を stax-api-1.0-2 (maven GroupId = javax.xml.stream)" に置き換えることで問題が解決したそうなので、その通りやってみることにします。
したがって、D = stax:stax-api:jar:1.0.1 と C = org.apache.xmlbeans:xmlbeans:jar:2.3.0 となる。
一応、maven 2.0.9を使っています。
mvn dependency:tree"の出力。
mvn dependency:tree
[..snip..]
[INFO] +- org.apache.poi:poi-ooxml:jar:3.6:compile
[INFO] | +- org.apache.poi:poi-ooxml-schemas:jar:3.6:compile
[INFO] | | +- org.apache.xmlbeans:xmlbeans:jar:2.3.0:compile
[INFO] | | | \- stax:stax-api:jar:1.0.1:compile
私のプロジェクトのPOMでは、"A"に以下のような依存関係があります。
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.6</version>
</dependency>
解決方法は?
現在のpomにあるバージョンを指定するだけです。ここで指定したバージョンは、他のバージョンを上書きします。
バージョンの強制
しかし、もしその POM 自体が推移的依存関係を用いて依存している場合、下流の他の POM にも影響を与えることに注意しなければなりません。
リソース :
関連
-
[解決済み] あるアーティファクトの依存関係ツリーを取得する方法は?
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] Mavenプロジェクトにローカルのjarファイルを追加する方法は?
-
[解決済み] Mavenに最新バージョンの依存関係を使用するように指示するにはどうすればよいですか?
-
[解決済み】Maven: POMに依存関係を追加した後、リポジトリを更新するコマンド
-
[解決済み】単一の依存関係のすべての推移的な依存関係を除外する
-
[解決済み] mvn install の代替となる Gradle
-
[解決済み] Mavenが使用するJDKを指定する
-
[解決済み] Maven: ライブラリによって追加された依存関係をオーバーライドする方法
-
[解決済み] Mavenを使用してプログラムを実行するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] あるアーティファクトの依存関係ツリーを取得する方法は?
-
[解決済み】単一の依存関係のすべての推移的な依存関係を除外する
-
[解決済み] 1つのコマンドラインで特定のMavenアーティファクトをダウンロードするにはどうすればよいですか?
-
[解決済み] mvn install の代替となる Gradle
-
[解決済み] Mavenが使用するJDKを指定する
-
[解決済み] Mavenを使用したリリース依存の強制再ダウンロード
-
[解決済み] Maven: ライブラリによって追加された依存関係をオーバーライドする方法
-
[解決済み] mvn クリーンインストール vs. デプロイ vs. リリース
-
[解決済み] Mavenを使用してプログラムを実行するにはどうすればよいですか?
-
[解決済み] Mavenのリアクタービルドからモジュールを除外する方法は?