LoginSignup
1
2

More than 3 years have passed since last update.

Mavenのpom.xml警告エラー

Last updated at Posted at 2019-10-21

Mavenプロジェクトでのpom.xml警告エラー

最近、Spring Bootを触っていてSpring Tool Suite(STS)でMavenのpom.xmlを触っていたところ、警告エラーが発生していました。
image.png
動作には影響ないのだけど、ちょっと気になるので、なぜエラーになっているか確認してみました。

まず、警告エラー内容は?

警告エラーは、以下のメッセージが表示されています。
Overriding managed version 4.12 for junit
image.png
よくわからないので、Google翻訳で和訳してみましょう。
image.png
実際にpom.xmlに定義しているの(dependencyタグのversionタグ)は、version 4.11なのでversion 4.12で上書きしています。というところでしょうか?

定義を上書きしている箇所はどこか?

さて、実際に定義を上書きしている箇所を探すことにします。
まずは、自分のpom.xml内を検索します。
image.png
まあ、わかっていることですがここ以外に記載はないのでこのpom.xmlには上書きしている箇所はないようです。
それではどこにあるのでしょうか?

parentPOM定義をみてみる

親POMというものがあって、Eclipseでは「Overview」タブでその定義を確認できます(もちろんxmlソースにも記載あります)。
image.png
で、この親POMってインターネットでどこかに記載されてるのかなぁとか思ったのですが、どうにか見れないか画面を確認していたところ、怪しいマークがありました。
おー!!こんなところに、何やら親POMを開いてくれるボタンがありました。押してみましょう。
image.png

親POM(ここでは、spring-boot-starter-parent)が開いてくれました。
image.png

parentPOM定義で定義を検索してみる

ここで定義を検索してみましょう。
image.png
またしてもみつかりません。。。ここで諦めてはいけないようです。spring-boot-starter-parentにも、親POMがあるようですので、同様の手順で親POMを開いて再度検索してみましょう。

image.png
ついに見つかりました!!ここに記載されているのは、version 4.12なのでこの定義が効いてるようでした。

まとめ

mavenの仕組みについてはまだまだ理解が足りないようですので、日々アップデートしていきたいと思っています。
ここで気になったのは、親POMの定義が優先されるのはどこかで定義されているのかな(そもそもそういうもの?)とかですね。ここら知れたら、メモしていきたいと思います。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2