메인 프로젝트가 하위 모듈에 의존하는 다중 모듈 maven 프로젝트가 있습니다. 하위 모듈의 모든 종속성은 다음과 같은 버전으로 정의됩니다. ${pom.version}
. 나는 maven release 플러그인을 사용한다. 내가 릴리스를 준비하려고하면, 하위 모듈의 누락 버전에 대한 오류가 있습니다.다중 모듈 응용 프로그램 maven
예 :
주요 치어 버전 1.0
에, 나는 그것을 해제하려고합니다. 메이븐 (Maven)은 모든 서브 모듈을 버전 1.1
으로 빌드 한 다음, 상위 빌드를 시도한 다음 충돌합니다. sub-module-1.1
을 찾을 수 없기 때문입니다.
나는 메이븐에게 빌드하는 법을 알지 못한다. 그리고 빌드하는 모든 서브 - 모듈 마녀를 로컬 - 레포에 즉시 설치한다. 나는 maven2를 사용한다.
내 치어 :
<modelVersion>4.0.0</modelVersion>
<groupId>com.voncuver</groupId>
<artifactId>voncuver</artifactId>
<packaging>pom</packaging>
<version>1.1-SNAPSHOT</version>
<name>multimodule</name>
<modules>
<module>mod1</module>
<module>mod2</module>
</modules>
(...)
<dependencyManagement>
<dependencies>
<dependency>
<artifactId>mod1</artifactId>
<groupId>com.voncuver</groupId>
<version>${pom.version}</version>
</dependency>
<dependency>
<artifactId>mod2</artifactId>
<groupId>com.voncuver</groupId>
<version>${pom.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
(...)
명시 적으로 각 하위 모듈의 버전을 $ {pom.version}으로 설정합니까? 버전 속성은 부모로부터 상속됩니다 ... –
먼저 pom (발췌는 ok입니다)을 게시 할 수 있습니다. pom.version을 더 사용하지 마십시오. project.version – khmarbaise
릴리스 플러그인은 반응기 내에서 종속 버전을 자동으로 업데이트합니다. 그래서 실제로 $ {project.version}을 참조 할 필요가 없습니다. @khmarbaise는 $ {pom.version}이 $ {project.version}을지지하여 더 이상 사용되지 않습니다. –