MAVEN ツールの記事 - アイデア プラグイン mavenhelper が Maven の依存関係の競合を解決する

1.紛争問題

たとえば、プロジェクトでは2 つのfastjson .jar バージョンが参照されています。

fastjson:1.2.28
fastjson:1.2.3

バージョン アップデートでバージョン 1.2.3 で削除されたクラス A などの特定のクラスを 1.2.28 で使用しましたが、Maven がプロジェクトに 1.2.3 jar をパッケージ化したため、異常が報告されます。このクラスは存在しますが、エラーを調整するとこのクラスが存在することがわかりました。では、問題の根本原因、どのパッケージを除外する必要があるかをどのように見つければよいでしょうか?

アイデア内の Maven 依存関係をチェックすると、複雑なグラフが得られるだけで、基本的には役に立たないため、プラグイン Maven ヘルパーをインストールする必要があります。

2. 問題を解決する

(1)まずプラグインMavenヘルパーをインストールします(すでにインストールしているため、インストールボタンはありません)

(2)インストールが完了すると、pomファイルの下にこんなものが現れます。

(3) をクリックすると、Eclipse に戻っていることがわかります。

(4) 次にキーポイントが来ます。競合オプションを選択します。競合します。この列はすべて競合するパッケージです。

(5) fastjsonを例に挙げます

(6)もちろん、間違いを犯した場合は、次のように問題のあるパッケージを直接検索することもできます。 

(7) 右クリックして Exclude を行うと、1.2.28 を使用したい場合は他のバージョンの Exclude を削除するだけで済み、1.2.3 を使用したい場合は他のバージョンの Exclude を削除するだけで済みます。

3. ロック瓶のバージョン

多数の依存関係に直面した場合、依存関係パスや宣言の最適化などの要素を考慮せずにバージョンを直接ロックすることで、依存コンポーネントのバージョンを決定する方法があります。標準がプロジェクトに追加され、この方法は一般的に使用されます。企業の発展。

次の構成は、spring-beans と spring-context のバージョンをロックします。

 
  <dependencyManagement>
  	<dependencies>
  		<!--这里锁定版本为4.2.4 -->
  		<dependency>
  			<groupId>org.springframework</groupId>
  			<artifactId>spring-beans</artifactId>
  			<version>4.2.4.RELEASE</version>
  		</dependency>
		<dependency>
  			<groupId>org.springframework</groupId>
  			<artifactId>spring-context</artifactId>
  			<version>4.2.4.RELEASE</version>
  		</dependency>
  	</dependencies>
  </dependencyManagement>

<dependencies></dependencies>注: プロジェクト内の依存関係のバージョンをロックしても、依存関係がプロジェクトに追加されるわけではありません。プロジェクトでロックされたバージョンの依存関係を追加する必要がある場合は、次のようにラベルを個別に追加する必要があります。

<dependencies>
  		<!--这里是添加依赖 -->
  		<dependency>
  			<groupId>org.springframework</groupId>
  			<artifactId>spring-beans</artifactId>
 		</dependency>
		<dependency>
  			<groupId>org.springframework</groupId>
  			<artifactId>spring-context</artifactId>
 		</dependency>
  	</dependencies>

上で追加した依存関係ではバージョンが指定されていません。<dependencyManagement>バージョンは でロックされているため、<dependency>以下の。

おすすめ

転載: blog.csdn.net/fengling_smile/article/details/122994601