종속성 관리를 위해 BOM (bill of materials)을 사용할 것입니다. 내가 제안하는
How to use BOM file with Maven?
Maven BOM [Bill Of Materials] Dependency
구조 :
부모 프로젝트 : 당신은에서 BOM에 대한 자세한 얻을 수있는 당신이 여기에서 볼 수있는 것처럼
<groupId>bom.test</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>childA</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>4.3.8.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
를 I 봄철 BOM을 사용했습니다.
아이 프로젝트 : 당신은 내가 스프링 웹 버전을 지정하지 않은 아이 종속성에서 보듯
<parent>
<artifactId>parent</artifactId>
<groupId>bom.test</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>childA</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.0.0.RELEASE</version>
</dependency>
</dependencies>
, 그것은 BOM에서 가져옵니다. 그러나 스프링 테스트 버전이 지정되었습니다. 메이븐이 어떻게 보는지 확인해 봅시다.
mvn help:effective-pom
.....
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>
.....
에 의해
확인 BOM의 콘텐츠 그래서 BOM 버전은 4.3.8
이의이 moduleA 웹이 버전을 사용하는지 확인 및 테스트 재정의 (override) 할 종속 Managment를을 확인하자입니다.
mvn dependency:tree
[INFO] bom.test:childA:jar:1.0-SNAPSHOT
[INFO] +- org.springframework:spring-web:jar:4.3.8.RELEASE:compile
[INFO] | +- org.springframework:spring-aop:jar:4.3.8.RELEASE:compile
[INFO] \- org.springframework:spring-test:jar:3.0.0.RELEASE:compile