2017-06-30 7 views
0

テスト実行中に私のmavenプロジェクトをコンパイルしようとすると、このエラーが発生します。私が狂った量のグーグルの後で私が理解したことは、これがクラスパスにあるジャクソンコアのいくつかの相反するバージョンのためであるということです。ここで

enter image description here

私は1つのバージョンのみが有効に解決の依存性であるように思われることを考えると、ここから続行するかどうかはわからない私は、依存関係の階層で見つけるものです

の場合テストをスキップしてビルドが成功するとインストールを実行しますが、テストを実行するか、実行時にサーバーを起動すると失敗します

私がリポジトリをナビゲートすると、次のバージョンが表示されます

2.1.1 2.1.2 2.3.3 2.4.3 2.5.1 2.5.3 2.8.2 

すべてを削除する必要がありますか?

これはマルチモジュールプロジェクトであり、すべてのmouleはこの依存関係をいくつか持っています。これは問題ですか?

答えて

0

これらのプロジェクト全体で複数のバージョンのjackson依存関係を導入しています。 Jacksonはバージョン間でのミックスとマッチングができないように設計されています。

あなたのプロジェクト内で使用中のjackson artifactのバージョンを管理するには、親POMレベルで依存関係管理を定義する必要があります。あなたは自分のジャクソンのバージョンを使用してからMavenを停止するために除外を追加する必要があり、独自のジャクソンのバージョンを使用しているこれらの他のジャーへのアクセス権を持っている場合

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management

によって。

https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html

私は、競合が使用中のcoreannotationバージョン間のだろうと思うだろうが、現実的に、あなたは他のジャクソンのアーティファクトがjaxb-annotationsdatabindなどのように、別のバージョンであることに問題があります

+0

ありがとう、たくさんの試みの後で、私はpom.xmlにdatabindと注釈の最大バージョンを明示的に追加することでこれを修正することができました –