문제
할 수 있습니까?
환경 : 멀티 모드 POM은 3 가지 모듈의 MM1, MM2, MM3으로 구성됩니다. 모듈 MM2는 종속성으로서 MM1을 갖는다. 오류없이 부모 POM을 구축 할 수 있습니다.
질문 : MM1을 로컬 리포지토리에 설치하지 않고 단일 모듈 MM2 (즉, MM2베이스 디렉토리에서 Maven을 실행할 수 있습니까?)를 빌드 할 수 있습니까?
감사.
해결책
자동 설치가 없으면 선택하지 않은 프로젝트 만 구축 할 수 있습니다. 멀티 모듈 빌드가 있어야합니다 (귀하가 그렇게 가정합니다). 원자로 모드에서 모든 명령은 반응기의 뿌리.
따라서 귀하의 경우 :
mvn reactor:make -Dmake.folders=mm2
이 경우 MM2 모듈과 의존하는 모듈 (MM1)을 빌드합니다.
유용한 링크:
책 예에서 나는 프로젝트 지속 시간과 그의 종속성 프로젝트 모델 만 구축합니다. 다른 프로젝트는 손대지 않습니다mvn reactor:make -Dmake.folders=sample-persist
Alt Text http://www.sonatype.com/books/maven-book/reference/figs/web/running_aro-dependencies.png
다른 유용한 명령입니다 reactor:make-dependents
X에 의존하는 프로젝트를 구축합니다.
다른 팁
"MM1을 로컬 리포지토리에 설치하지 않고"정확히 무엇을 의미하는지 잘 모르겠습니다. 이전에 MM2를 구축하는 것을 의미합니까?
의심 할 여지없이 아마도 새로운 빌드 옵션 중 하나가 Maven 팁 및 요령 : 고급 원자로 옵션 블로그 게시물은 도움이 될 수 있습니다.
Maven 2.1 릴리스부터 시작하여 Maven이 멀티 모듈 프로젝트를 구축하는 방식을 조작 할 수있는 새로운 Maven Command Line 옵션이 있습니다. 이 새로운 옵션은 다음과 같습니다.
-rf, --resume-from Resume reactor from specified project -pl, --projects Build specified reactor projects instead of all projects -am, --also-make If project list is specified, also build projects required by the list -amd, --also-make-dependents If project list is specified, also build projects that depend on projects on the list
나는 구체적으로 생각하고 있었다 -pl
그리고 -am
옵션. 모듈의 하위 집합을 만들려면 루트 디렉토리에서 다음을 실행하십시오.
$ mvn --projects mm2 --also-make install
그러나 나는 이것이 당신의 질문에 대한 답을 확신하지 못한다 (이것은 나에게 완전히 명확하지 않다).
이것은 maven2의 종속성 원칙에 위배됩니다. 정확히 그 일을하는 것에 대한 관심은 무엇입니까?
그러나 MM2의 MM1 의존성을 system
의존:
<dependency>
<groupId>...</groupId>
<artifactId>mm1</artifactId>
<version>...</version>
<scope>system</scope>
<systemPath>../mm1/target/</systemPath>
</dependency>