Agregate 프로젝트 1 :메이븐 프로젝트 집계 및 변수
<groupId>com.mycompany</groupId>
<artifactId>builder</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<modules>
<module>../module-1</module>
<module>../module-2</module>
</modules>
<properties>
<project.parent.pom>../builder-v1/pom.xml</project.parent.pom>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<lib.version>2.5.1</lib.version>
</properties>
Agregate 프로젝트 2 :
<groupId>com.mycompany</groupId>
<artifactId>builder</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<modules>
<module>../module-1</module>
<module>../module-4</module>
<module>../module-6</module>
</modules>
<properties>
<project.parent.pom>../builder-v2/pom.xml</project.parent.pom>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<lib.version>2.6.0</lib.version>
</properties>
모듈 1 : 집계 치어에서 변수
<parent>
<groupId>com.mycompany</groupId>
<artifactId>builder</artifactId>
<version>1.0.0</version>
<relativePath>../builder-v1/pom.xml</relativePath>
<!--<relativePath>${project.parent.pom}</relativePath> not work-->
</parent>
<groupId>com.mycompany</groupId>
<artifactId>module-1</artifactId>
섹션 relativepath를하지
작업<relativePath>../builder-v1/pom.xml</relativePath>
<!--<relativePath>${project.parent.pom}</relativePath> not work-->
하지만 집계 프로젝트에서 다른 $ {lib.version}이 필요합니다. 내가 모듈 1에서 상속 부분을 삭제하는 경우 :
<!--<parent>
<groupId>com.mycompany</groupId>
<artifactId>builder</artifactId>
<version>1.0.0</version>
<relativePath>../builder-v1/pom.xml</relativePath>
</parent>-->
<groupId>com.mycompany</groupId>
<artifactId>module-1</artifactId>
변수는 하위 모듈에 전달되지 않습니다와 나는 오류가 발생했습니다 :
'dependencies.dependency.version' for com.somelib:some-lib:jar must be a valid version but is '${lib.version}'.
가 어떻게 모듈로 집계 프로젝트 및 전송 변수를 구성 할 수 있습니까?
<parent>
<groupId>com.mycompany</groupId>
<artifactId>parent</artifactId>
<version>1.0.0</version>
</parent>
<groupId>com.mycompany</groupId>
<artifactId>module-1</artifactId>
Agregate 프로젝트 1 : 1
<groupId>com.mycompany</groupId>
<artifactId>parent</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<profiles>
<profile>
<id>v1</id>
<activation>
<property>
<name>project.type</name>
<value>v1</value>
</property>
</activation>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<lib.version>2.5.1</lib.version>
</properties>
</profile>
...
</profiles>
모듈 : @Gab와
UPDATE는
부모 치어를 코멘트
<groupId>com.mycompany</groupId>
<artifactId>builder-v1</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<modules>
<module>../module-1</module>
<module>../module-2</module>
</modules>
나는 당신의 질문을 이해하면
mvn clean package --file=pom_v1.xml -Dproject.type=v1 -Dproject.main.module=module-1
도움이 되셨습니다. 감사합니다. 근무한 구성을 찾았습니다. 공통 부모 인 pom에서 2 개의 프로필을 만들고 속성을 설정합니다. 속성별로 프로필을 활성화하십시오. mvn을 실행할 때 속성 설정 : mvn clean 패키지 -DsomeProperty = v1 –
> maven 명령에서 속성을 지정할 필요가 없습니다. 프로젝트 pom의 설정을 사용할 수 없습니다 : 인식 할 수없는 태그 : 'settings', 우리는 설정. 내가하려고하는 것이 아닙니다. conf라는 두 개의 autobuilding 집계 프로젝트를 시도하고 maven 명령으로 활성화하는이 작업 –
설정을 놓쳤습니다.) – Gab