2014-10-17 3 views
0

Maven -pl 옵션을 사용하여 특정 모듈을 원자로에 포함시킬 것을 정의하고 싶습니다. 이 옵션은 모듈의 경로 목록이 제공되면 작동합니다. 불행히도, 모듈의 artifactIds를 제공하는 것은 전혀 작동하지 않습니다.Maven 다중 프로젝트 빌드에서 빌드 될 모듈 목록을 정의하십시오.

http://books.sonatype.com/mvnref-book/reference/_using_advanced_reactor_options.html

은 artifactId를 가진 -pl 옵션을 사용할 수 있습니다 : Sonatype '메이븐 : 완전한 참조'디렉토리 이름이 artifactIds 일치하는 경우 문서는 멀티 프로젝트 예제를 사용하고 있습니까?

+1

어떤 메이븐 버전을 사용하십니까? 어떻게 부르셨습니까? POM 파일은 어떻게 생겼습니까? – khmarbaise

+0

참고 : [Maven by Example] (http://books.sonatype.com/mvnex-book/reference/multimodule-sect-simple-parent.html) : _ "각 모듈 요소는 simple- parent/directory "._ 'artifactIds'에 따라 프로젝트 디렉토리를 명명하는 것이 가장 좋은 방법이라고 생각하지 않습니까? 저는 이것이 15 개의 최상위 프로젝트와 수백 개의 하위 프로젝트를 가진 우리 프로젝트의 경우가 아닌 하위 프로젝트를 전혀 알지 못합니다. –

+0

성능을 고려하십시오. 대다수가 특정 빌드에 적용되지 않는 경우에도 'artifactId'가 적용되는지 여부를 확인하기 위해 _every_ 하위 디렉토리의 POM을 구문 분석해야합니다. 필요에 따라 절대 디렉토리 이름을 사용하는 것이 훨씬 빠릅니다. –

답변

3

예, 가능합니다. mvn --help에서보세요 :

-pl,--projects <arg>     Comma-delimited list of specified 
             reactor projects to build instead 
             of all projects. A project can be 
             specified by [groupId]:artifactId 
             or by its relative path. 

참고 특히 선도적 인 groupId없이 artifactId 여전히 선두 대장이 있는지 확인합니다.

그래서, artifactId 디렉토리 이름과 동일한 경우, 예를 들어,이 세 가지 라인은 모두 메이븐에서 동일한 모듈을 참조합니다 :

  • mvn -pl maven-core
  • mvn -pl :maven-core
  • mvn -pl org.apache.maven:maven-core
관련 문제