0

어떻게 모든 종속성을 explicite 버전과 모든 필수 종속성에 복사 할 수 있는지 알아 내려고합니다.maven copy-dependencies includeGroupIds 및 모든 전 이적 요소를

예 : 내 프로젝트 foobar라는 제 3 자 lib의 버전 3이 필요합니다. 버전 3 라이브러리를 lib-foobar - $ {foobar.version} 폴더에 복사하려고합니다. 이 폴더에는 버전 3에서 foobar를 사용하는 데 필요한 항아리가 있습니다. 즉, 항아리 자체와 foobar pom에서 선언 된 모든 종속 항아리를 의미합니다.

저는 현재 위상 패키지에 goal copy-dependencies가있는 org.codehaus.mojo : maven-dependency-plugin : 2.1을 사용하고 있습니다. 내 구성은 내가 새로운 버전으로 단계가 매월 발생하기 때문에 모든 허용되지 않은 LIB 년대를 나열하고 싶지 않은

<configuration> 
    <outputDirectory>${project.build.directory}/lib-foobar-${foobar.version}</outputDirectory> 
    <includeGroupIds>com.foobar</includeGroupIds> 
    <excludeTransitive>false</excludeTransitive> 
    <excludeScope>test</excludeScope> 
    <includeScope>compile</includeScope> 
</configuration> 

입니다.

해당 작업을 수행 할 수있는 도구가 있습니까? 아니면이를 피할 수있는 도구가 있습니까? 답장을 보내 주셔서 감사합니다!

+2

[maven-assembly-plugin] (http://maven.apache.org/plugins/maven-assembly-plugin/)을 사용해보십시오. – user944849

답변

3

큰 감사 덕분에 user944849.

이 경우 가장 좋은 해결책을 찾는데 도움이되었습니다.

내 솔루션에 관심이 모두 들어

, 여기가 온다 : 처음에는

나는 받는다는-assemby-플러그인을하는 플러그인을 변경하고 새로운 어셈블리 파일

 <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.4</version> 
     <dependencies> 
      <dependency> 
      <groupId>com.foobar</groupId> 
      <artifactId>foobar-parent</artifactId> 
      <version>${foobar.version}</version> 
      <type>pom</type> 
      </dependency> 
     </dependencies> 
     <executions> 
      <execution> 
      <id>copy-foobar</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      <configuration> 
       <descriptors> 
        <descriptor>src/assemble/foobar-libs.xml</descriptor> 
       </descriptors> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 

그리고 어셈블리 파일을 추가

<assembly 
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> 
    <id>standalone</id> 
    <formats> 
    <format>dir</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <dependencySets> 
    <dependencySet> 
     <includes> 
     <include>org.foobar</include> 
     </includes> 
     <outputDirectory>/lib-foobar-${foobar.version}</outputDirectory> 
     <useProjectArtifact>true</useProjectArtifact> 
     <useTransitiveFiltering>true</useTransitiveFiltering> 
     <unpack>false</unpack> 
    </dependencySet> 
    </dependencySets> 

</assembly> 

이 키가 포함 libs가 기반으로하는 모든 이적 libs와 해결합니다 <useTransitiveFiltering> 요소였다 것 같습니다.

관련 문제