我有一个名为 P1 的项目,它是一个 spring-boot 项目。pom已经有一个父pom,所以我决定用springboot和一个bom。
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
然后将该项目部署为 P1.jar
然后我有一个名为 P2 的第二个项目。该项目只有 1 个依赖项,即 P1 项目:
<dependencies>
<dependency>
<groupId>my.company</groupId>
<artifactId>p1</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
这是两个项目的 mvn dependency:tree 的摘录:
P1:
[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.4.3.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.4.3.RELEASE:compile
[INFO] | | +- org.apache.tomcat:tomcat-jdbc:jar:8.5.6:compile
[INFO] | | | \- org.apache.tomcat:tomcat-juli:jar:8.5.6:compile
[INFO] | | \- org.springframework:spring-jdbc:jar:4.3.5.RELEASE:compile
[INFO] | +- javax.transaction:javax.transaction-api:jar:1.2:compile
[INFO] | +- org.springframework.data:spring-data-jpa:jar:1.10.6.RELEASE:compile
[INFO] | | \- org.springframework:spring-orm:jar:4.3.5.RELEASE:compile
P2:
[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.4.3.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.4.3.RELEASE:compile
[INFO] | | +- org.apache.tomcat:tomcat-jdbc:jar:8.5.6:compile
[INFO] | | | \- org.apache.tomcat:tomcat-juli:jar:8.5.6:compile
[INFO] | | \- org.springframework:spring-jdbc:jar:4.3.5.RELEASE:compile
[INFO] | +- javax.transaction:javax.transaction-api:jar:1.2:compile
[INFO] | +- org.springframework.data:spring-data-jpa:jar:1.10.6.RELEASE:compile
[INFO] | | \- org.springframework:spring-orm:jar:4.2.9.RELEASE:compile
如您所见,spring-orm 依赖项不同。有人可以解释一下这是如何工作的,我该如何解决?
目前我在我的第二个项目中添加了 BOM。但这不是我的目标。我希望能够导入 P1 项目及其 REAL 依赖项,而无需执行任何其他操作或知道项目正在使用哪个 bom。