A multi-module parent POM declares the following BOM import:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.spring.platform</groupId>
<artifactId>platform-bom</artifactId>
<version>${spring.io.platform.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Then a module POM declares a Hibernate dependency:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
How do I find out with Maven command line or IntelliJ where the effective Hibernate version is defined?
Running mvn dependency:tree
against my module yields:
...
[INFO] +- org.hibernate:hibernate-core:jar:4.3.11.Final:compile
...
which is not exactly helpful because it looks no different than if I managed the Hibernate version myself. If you have to do this manually you
platform-bom-2.0.3.RELEASE.pom
, search for Hibernate -> nothingspring-boot-starter-parent-1.3.3.RELEASE.pom
, search for Hibernate -> nothingspring-boot-dependencies-1.3.3.RELEASE.pom
, search for Hibernate -> finally... But what an ordeal. Of course you could check http://docs.spring.io/platform/docs/current/reference/htmlsingle/#appendix-dependency-versions but isn't that information Maven should be able to find on its own?
mvn help:effective-pom -Dverbose=true
gives the information of location of pom from where an entry comes in effective pom in comment.
reference: http://maven.apache.org/plugins/maven-help-plugin/effective-pom-mojo.html
I was trying to use mvn help:effective-pom -Dverbose
from this other answer, but it didn't work for me because it was using maven-help-plugin:2.2, and -Dverbose
was introduced in 3.2.0.
Instead, you should thus force the version in the command line:
mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:effective-pom -Dverbose=true -Doutput=effective-pom.xml
(better to use -Doutput
because the file can be big and it is not convenient to read it in a terminal)
In Eclipse, when viewing the pom in XML format (i.e in the "pom.xml" tab, not the "Overview" tab), simply put the mouse cursor over the artifact name and a popup will appear with the effective version and the location where it is defined.
According to How do I show the Maven POM hierarchy? it looks like it not possible with a simple command.
You should write your own plugin or script to climb the hierarchy to the top and find the artifact you are interested in.
Small Tip: to retrieve the version of an artifact you're using, you can open the pom.xml in the Idea Editor and hold Ctrl while hovering on the artifactId, and the full name of its pom will be displayed, with its version.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With