Mavenプロジェクトでのpom.xml警告エラー
最近、Spring Bootを触っていてSpring Tool Suite(STS)でMavenのpom.xml
を触っていたところ、警告エラーが発生していました。
動作には影響ないのだけど、ちょっと気になるので、なぜエラーになっているか確認してみました。
まず、警告エラー内容は?
警告エラーは、以下のメッセージが表示されています。
Overriding managed version 4.12 for junit
よくわからないので、Google翻訳で和訳してみましょう。
実際にpom.xml
に定義しているの(dependencyタグのversionタグ)は、version 4.11なのでversion 4.12で上書きしています。というところでしょうか?
定義を上書きしている箇所はどこか?
さて、実際に定義を上書きしている箇所を探すことにします。
まずは、自分のpom.xml
内を検索します。
まあ、わかっていることですがここ以外に記載はないのでこのpom.xml
には上書きしている箇所はないようです。
それではどこにあるのでしょうか?
parentPOM定義をみてみる
親POMというものがあって、Eclipseでは「Overview」タブでその定義を確認できます(もちろんxmlソースにも記載あります)。
で、この親POMってインターネットでどこかに記載されてるのかなぁとか思ったのですが、どうにか見れないか画面を確認していたところ、怪しいマークがありました。
おー!!こんなところに、何やら親POMを開いてくれるボタンがありました。押してみましょう。
親POM(ここでは、spring-boot-starter-parent
)が開いてくれました。
parentPOM定義で定義を検索してみる
ここで定義を検索してみましょう。
またしてもみつかりません。。。ここで諦めてはいけないようです。spring-boot-starter-parent
にも、親POMがあるようですので、同様の手順で親POMを開いて再度検索してみましょう。
ついに見つかりました!!ここに記載されているのは、version 4.12なのでこの定義が効いてるようでした。
まとめ
mavenの仕組みについてはまだまだ理解が足りないようですので、日々アップデートしていきたいと思っています。
ここで気になったのは、親POMの定義が優先されるのはどこかで定義されているのかな(そもそもそういうもの?)とかですね。ここら知れたら、メモしていきたいと思います。