2009-12-24 7 views
0

다중 모듈 프로젝트가 있고 어셈블리 플러그인을 사용하여 tar 파일을 작성 중입니다. moduleSets 태그를 사용하여 어셈블리 플러그인에 모든 모듈을 포함했습니다.Maven 어셈블리 플러그인 - Repo jars 포함

<moduleSets> 
    <moduleSet> 
     <includes> 
      <include>module1</include> 
      <include>module2</include> 

모든 모듈 jar는 lib 폴더로 어셈블됩니다. 내 다른 모든 모듈을 포함하는 동일한 lib 폴더에 내 로컬 메이븐 리포지토리에서 mysql 항아리를 추가하고 싶습니다. 모듈 집합에 로컬 저장소 항아리를 추가해도 작동하지 않는 것 같습니다.

[WARNING] The following patterns were never triggered in this artifact inclusion filter: 
o 'mysql.mysql-connector-java:mysql-connector-java-version' 

어떻게하면 maven 저장소의 jar 파일을 포함시킬 수 있습니까?

답변

1

특별한 일을 할 필요가 없다고 생각합니다. mysql이 프로젝트의 의존성 목록에 있는지 확인하십시오. 모듈에 대한 의존성에도 동일하게 적용됩니다. 단지 의존성으로 나열합니다. 다음은 어셈블리 플러그인의 일반적인 구성입니다.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
    <executions> 
     <execution> 
     <id>make-assembly</id> 
     <phase>package</phase> 
     <goals> 
      <goal>single</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
2

나는 당신이 dependencySetincludes 하위 요소에 MySQL의 항아리를 선언 할 필요가 있다고 생각합니다. 이 같은

뭔가 :

<assembly> 
    <id>my-assembly</id> 
    ...  
    <dependencySets> 
    <dependencySet> 
     <outputDirectory>/lib</outputDirectory> 
     <includes> 
     <include>mysql:mysql-connector-java</include> 
     </includes> 
     <unpack>false</unpack> 
     <scope>runtime</scope> 
    </dependencySet> 
    </dependencySets> 
    ... 
</assembly> 

Descriptor Format 문서 및/또는이 요소에 대한 자세한 내용은 메이븐 책의 장 12.5.4. dependencySets Section을 참조하십시오.

+0

+1. 또 다른 좋은 옵션은 모듈에 런타임 종속성이 필요한이 mysql 커넥터를 추가하는 것이다. – cetnar

0

나는 동일한 문제가있어서, pom 의존성의 범위를 컴파일하여 변경하여 해결했다.

<dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <scope>compile</scope> 
    </dependency> 
관련 문제