Maven 2와 Maven 3 사이의 변경 동작을 관찰했습니다. 버그 또는 기능입니까? 아무것도 찾지 못했습니다. Maven 3.x Compatibility NotesMaven 3 회귀 : 프로필 종속성이 손실 되었습니까?
두 개의 다른 프로필을 사용하여 다중 모듈 프로젝트에서 서로 다른 환경에 대한 종속성을 추가합니다.
부모 POM :
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>group</groupId>
<artifactId>main</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
<modules>
<module>common</module>
<module>portal</module>
</modules>
</project>
공통 POM은 프로필을 가지고
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>group</groupId>
<artifactId>common</artifactId>
<packaging>jar</packaging>
<version>1.0.0-SNAPSHOT</version>
<parent>
<groupId>group</groupId>
<artifactId>main</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<profiles>
<profile>
<id>development</id>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>production</id>
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</profile>
</profiles>
</project>
포털 - POM은 공통 의존성을 가지며, 공통의 전이 종속성을 포함한다 모듈 :
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>group</groupId>
<artifactId>portal</artifactId>
<packaging>war</packaging>
<version>1.0.0-SNAPSHOT</version>
<parent>
<groupId>group</groupId>
<artifactId>main</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>group</groupId>
<artifactId>common</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
Maven2를 통해이 프로젝트를 빌드하십시오. mvn -P production package
은 전 이적 종속성을 포함하는 WAR를 생성합니다. (나는 단순한 의존성을 사용하여 쉽게 재생산했다.) Maven3을 통해 실행하면서, WAR에서 common.jar 만 얻었지만 전이 의존성은 얻지 못했다.
원하는 동작입니까?
"재미있는 것"을 만들기 : 프로파일 중 하나가 기본적으로 활성화되면 (활성화는 하위 모듈에서 부모 모듈로 파생되지 않으므로 common-pom에 명시되어 있음) 이러한 전이 의존성은 항상 문. 프로필을 통한 필터링 또는 속성 설정은 예상대로 작동합니다.
링크에 썩어 보인 것처럼 코멘트 에센스가 포함되어 있으면 다행입니다. –