2012-05-16 2 views
1

배경은 Maven 프로젝트에

  1. 하나의 트렁크와 하나 개의 표준 svn의 레이아웃 지점, /trunk/branches/prod
  2. 20 모듈 멀티 SVN 지점에서 멀티 모듈 메이븐 프로젝트를위한 가장 좋은 방법은 무엇입니까
  3. 트렁크를 컴파일하려면 cd trunk; mvn clean package을 입력하면됩니다. 각각의 모듈을 컴파일 할 것입니다. 제작이 필요할 때와 비슷한 것입니다.
  4. 센터 받는다는의 repo

문제

  1. 에만 업데이트 된 모듈을 컴파일 할 수 있다면? 실제로 수정 된 소스 파일을 가능한 한 컴파일해야합니다. 나는 그것이 단순한 것임을 알고 있습니다. ant 또는 make. 그러나 maven compile은 항상 처음부터 수정합니다.
  2. trunk에서 pom.xml을 사용해야하며 동일한 artifactId 및 버전을 유지해야합니까? 같은 artifactId와 version은 maven과 함께 작동하지 않을 수 있습니다 : trunk와 prod는 배포 된 각 패키지를 덮어 쓰기 때문에 deploy합니다.
+0

maven 컴파일러 플러그인의 버전 2.4를 확인하십시오. 다중 모듈 프로젝트의 성능이 크게 향상되었습니다. 나는 –

답변

1

mvn -am -pl 옵션을 사용하면 해당 모듈로 작업을 제한 할 수 있습니다.

+-- root (pom.xml) 
    +-- client (pom.xml) dep: core 
    +-- server (pom.xml) dep: client 
    +-- core (pom.xml) 
    +-- cli (pom.xml) dep:core 

당신이

mvn -am -pl server LifeCycle 

에만 서버 모듈을 서버에 사용되는 모듈은 적절한 라이프 사이클을 통해 실행됩니다.

mvn -am -pl cli LifeCycle 

이 경우 cli 모듈과 코어 모듈 만 주어진 라이프 사이클 동안 실행됩니다.

+0

** - am -pl ** 인수는 내가 원하는 것입니다. 고맙습니다. – yegong

1

mvn 컴파일은 항상 처음부터 빌드되지는 않습니다. 변경된 Java 파일 만 컴파일합니다. mvn clean compile을 실행하지 않는 한. 그런 다음 모든 프로젝트가 정리되고 처음부터 컴파일됩니다.

언제든지 원하는 프로젝트로 들어가서 컴파일 할 수 있습니다. 당신이 MVN 컴파일 호출과 시간이 소요 거기 플러그인 실행이있을 수 있습니다 경우

편집 메이븐 항상 컴파일 단계까지의 모든 단계를 실행한다. 그러나 자바 파일의 실제 컴파일은 필요한 것 이상으로 수행되지 않습니다. mvn 컴파일을 두 번 실행하면 "모든 클래스를 컴파일하는 것은 아무것도 없습니다"라는 메시지가 나타납니다.

또는 "파일이 최신 상태입니까?"

편집 - 두에서 생성 된 아티팩트 다른 버전이 아닌 경우 질문 NBR 2 왜 트렁크 및 제품 모두에서 출시된다? 다른 버전이 있어야합니다. 트렁크에 다시 병합 할 수있는 실험용 브랜치를 만들지 않는다면 결코 자신의 트렁크에 릴리스하지 않을 것입니다. 이 경우 실험 브랜치는 자신의 버전 번호가 필요하지 않습니다.

+0

를 본다. 고마워, 루드비히. – yegong

관련 문제