2013-02-13 1 views
1

maven-assembly-plugin 버전 2.4를 사용하여, mypackage으로 시작하는 groupid 아래 jar 파일 만 포함하는 저장소의 zip 파일을 빌드하려고합니다.Maven 어셈블리로 저장소 서브 세트 추출

패턴이있는 저장소 사용 mypackage. * : *이 작동하지 않습니다. 빌드가 성공했지만 저장소에 모든 의존성이 포함되어 있습니다! (모든 항아리 루트 폴더에 제외하고 ...) 같은 패턴으로 설정

<formats> 
    <format>zip</format> 
</formats> 
<includeBaseDirectory>false</includeBaseDirectory> 
<repositories> 
    <repository> 
     <includes> 
      <include>mypackage.*:*</include> 
     </includes> 
     <scope>test</scope> 
     <includeMetadata>false</includeMetadata> 
    </repository> 
</repositories> 

사용 종속성 작동 : 구성에서 뭔가 잘못

<formats> 
    <format>zip</format> 
</formats> 
<includeBaseDirectory>false</includeBaseDirectory> 
<dependencySets> 
    <dependencySet> 
    <includes> 
     <include>mypackage.*:*</include> 
    </includes> 
    <unpack>false</unpack> 
    <scope>test</scope> 
    <useProjectArtifact>false</useProjectArtifact> 
    </dependencySet> 
</dependencySets> 

있습니까? 메이븐 어셈블리로 할 수 있습니까?

+0

''mypackage. ** : *''를 사용하면 현재 POM 프로젝트 만 포함하는 저장소가 생성되지만 저장소 태그에는 플래그''useTransitiveDependencies''를 사용할 수 없습니다. 어떤 생각? – JBE

답변

0

repositories 태그를 사용하여 어셈블리를 지정하면 excludes 태그가있는 어셈블리 정의에서 명시 적으로 제외시키는 경우를 제외하고는 프로젝트 종속성의 모든 종속성도 함께 가져옵니다.

<formats> 
    <format>zip</format> 
</formats> 
<includeBaseDirectory>false</includeBaseDirectory> 
<repositories> 
    <repository> 
     <includes> 
      <include>mypackage.*:*</include> 
     </includes> 
     <excludes> 
      <exclude>commons-cli:*</exclude> 
     </excludes> 
    </repository> 
</repositories> 

이것은 (프로젝트 또는 해당 종속성 중 하나가 물론 그것을 사용하는 경우) 종속성 를 제외 할 수commons-cli:* 및 종속성도 문제가 당신이 가지고있는 예를 들면 다음과 같습니다

제외시키려는 종속성을 나열하지만 프로젝트에 mvn dependency:tree을 쉽게 실행할 수있는 목록을 가질 수 있습니다.