2017-11-28 21 views
1

여러 하위 모듈이있는 라이브러리가 있습니다. 상위 POM에 라이브러리의 버전을 설정했습니다.Maven BOM (Bill of Materials)의 단일 항목에있는 모든 Maven 하위 모듈의 버전 설정

<groupId>com.softtech</groupId> 
<artifactId>BatchLibrary</artifactId> 
<version>2.1</version> 
<packaging>pom</packaging> 

또한이 라이브러리가 정의 된 Maven Bill of Materials (BOM) 프로젝트를 만들었습니다.

먼저 경우에서, I는 두 번째 경우에서

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>com.softtech</groupId> 
      <artifactId>BatchLibrary</artifactId> 
      <version>2.1</version> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

아래로 BOM의 전체 라이브러리의 버전을 설정 I 아래

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>com.softtech</groupId> 
      <artifactId>BatchLibrary-core</artifactId> 
      <version>2.1</version> 
     </dependency> 
     <dependency> 
      <groupId>com.softtech</groupId> 
      <artifactId>BatchLibrary-web</artifactId> 
      <version>2.1</version> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 
같이 개별적 라이브러리의 각 서브 모듈의 버전을 설정

이 BOM을 프로젝트에 추가했습니다. 내 프로젝트에서 라이브러리의 하위 모듈을 버전없이 선언 할 때. 위에서 언급 한 첫 번째 경우, 내가

dependency.version는 두 번째 경우

누락 오류가 발생, 그것을 잘 작동합니다.

BOM이 작동하는 방식입니까? 내 BOM에 버전이있는 모든 하위 모듈을 개별적으로 정의해야합니까, 아니면 버전으로 내 라이브러리의 상위 POM을 정의 할 수 있습니다. 해야한다면? 내 사건에서 왜 효과가 없습니까?

답변