2013-08-05 1 views
0

메이븐 빌드를 만들려고 할 때 resluces soures jar, javadoc jar 및 기존 플러그인을 통해 쉽게 얻을 수있는 컴파일 된 클래스 jar가 필요합니다.메이븐 항아리 옵션, 빌드 중에 추가 항아리를 만들 때

하지만 XSD는 src/main/resources/xsd 폴더 아래에 있습니다. 빌드 프로세스 중에 다른 jar 파일로 생성하는 것을 선호합니다. 사전에 도움을

덕분에

답변

0

커스텀 플러그인 또는 assembly을 사용하여 추가로 아티팩트를 메이븐 빌드에 추가 할 수 있습니다. 어셈블리를 사용하면 임의의 리소스 그룹을 새로운 인공물에 정의 할 수 있습니다. 이 새로운 인공물은 항아리를 부착 할 수있는 것과 같은 방법으로 기존의 것에 부착하는 것입니다.

당신이 기술자를 정의하고 src/main/assembly/xsd.xml

같은 모양 기술자처럼 어딘가에 둘 필요가 어셈블리 작성 :

<assembly> 
    <id>xsd</id> 
    <formats> 
     <format>zip</format> 
    </formats> 
    <fileSets> 
     <fileSet> 
      <directory>src/main/resources/xsd</directory> 
      <includes> 
       <include>*.xsd</include> 
      </includes> 
     </fileSet> 
    </fileSets> 
</assembly> 

두 번째 부분은 모양 어셈블리 플러그인 구성입니다 다음과 같음 :

<build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
      <descriptors> 
      <descriptor>src/main/assembly/xsd.xml</descriptor> 
      </descriptors>   
     </configuration> 
     <executions> 
       <execution> 
       <id>make-xsd-zip</id> <!-- this is used for inheritance merges --> 
       <phase>package</phase> <!-- bind to the packaging phase --> 
       <goals> 
       <goal>single</goal> 
       </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 

너에게 이름을 가진 유물 : <artifactid>-<version>-<assemblyid>.zip

0

음, Maven은 기본적으로 하나의 pom.xml에서 여러 아티팩트를 지원하지 않습니다. 하지만 당신은 다른 항아리 xsdJar\pom.xml에서 지금

codebase 
    |- pom.xml 
    |- src 
    |- xsdJar 
     |- pom.xml 
    |- [other stuff] 

, 또한

<project> 
    ... 
    <build> 
    <plugins> 
     ... 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
      <includes> 
      <include>../src/main/resources/xsd/*</include> 
      </includes> 
     </configuration> 
     </plugin> 
     ... 
    </plugins> 
    </build> 
    ... 
</project> 

을 만드는 데에만 pom와 다른 빈 프로젝트를 만들 수 있습니다, 메인 pom.xml

<modules> 
    <module>xsdJar</module> 
</modules> 
에 위에서 언급 한 모듈을 호출