私は使っている spring-boot
、および説明されたものと同様のエラーが発生しました here 。 pom.xmlに以下を追加しました。
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId><!--$NO-MVN-MAN-VER$-->
<version>1.1.0.Final</version>
</dependency>
親のpom.xmlで定義されているvalidation-api 1.0.0依存関係を、Springブートによってオーバーライドしています。これにより、厄介な警告メッセージが表示されます。
Validation-apiの管理対象バージョン1.0.0.GAのオーバーライド
Eclipseでこの警告メッセージを永久に抑制するにはどうすればよいですか? pom.xmlと問題ビューの両方に表示されます。
その警告が表示されたら、警告のクイック修正メニューを開き(Ctrl + 1)、
この警告を無視
これにより、バージョン行に次のようなコメントが追加されます。
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version><!--$NO-MVN-MAN-VER$-->
</dependency>
問題は、そのコメントを間違った行に手動で追加したことです。
プロジェクトはspring-boot
を使用しているため、より適切な答えがここにあります: https://stackoverflow.com/a/35385268/1568658
(そして、同じ問題が発生したため、上記の回答もあまり完全ではありません。ここに回答を追加します。)
問題の理由:
spring-boot
は多くの依存関係とそのバージョンを定義しています。spring-boot
を親として使用すると、これらの依存関係が継承されます。 '依存関係。
解決策:
<properties></properties>
間の依存関係のプロパティを定義して、バージョンを指定します。
例えば
<properties>
<reactor.version>2.5.0.BUILD-SNAPSHOT</reactor.version>
</properties>
プロパティ名の見つけ方:
ctrl + click
タグの<parent>
は、親のPOMを開き、再帰的に2回クリックして、spring-boot-dependencies
としてartifactIdでPOMに到達する必要があります。servlet-api
を検索すると、デフォルトバージョンが表示されます。それをより良く説明する春の文書があります: https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot
メインpomで必要なバージョンを入力します。
この警告は、メイン(トップレベル)POMで定義されているアーティファクトバージョンをオーバーライドしようとしていることを意味します。メインポンで必要なバージョンを入力するだけで、この依存関係の他のポンで<version />
を使用する必要さえありません。