Issue
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
- start at
platform-bom-2.0.3.RELEASE.pom
, search for Hibernate -> nothing - go to its parent
spring-boot-starter-parent-1.3.3.RELEASE.pom
, search for Hibernate -> nothing - go to its parent
spring-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?
Solution
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)
Answered By - Didier L
Answer Checked By - Dawn Plyler (JavaFixing Volunteer)