2014-09-30 2 views
0

빌드 할 프로젝트가 있습니다. 그래서 지금 내가 받는다는 1) 메인/자바 및 주/자원 2) 메인/자바 및 테스트/자원테스트 리소스 파일 만있는 maven 빌드 jar

를 사용하여이 개 jar 파일을 생성 할

> src | - main 
>  |- java 
>  - resources 
>  | - test 
>  | - resources 

아래와 같이 프로젝트의

구조

내 POM은

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass>com.tool.Main</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>2.5</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>test-jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

답변

0

당신이 계신되지 무엇인지 그것을 위해 무슨 일을 지정하지,하지만 예를보고 결코 당신처럼 보인다 POM에 정의 된 동일한 플러그인의 두 가지 버전이있어 원하는대로 해킹 할 수 있습니다.

<execution> 태그를 사용하여 원하는 동작을 정의하면 이후의 작업을 수행 할 수 있습니다.

<plugin> 
    <!-- jar plugin --> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.4</version> 
    <executions> 
     <!-- use these to define different execution tasks during the package phase --> 
     <execution> 
      <id>default-jar</id> 
      <phase>package</phase> 
      <goals> 
       <goal>jar</goal> 
      </goals> 
      <configuration> 
       <archive> 
        <manifest> 
         <addClasspath>true</addClasspath> 
         <classpathPrefix>lib/</classpathPrefix> 
         <mainClass>${project.mainClass}</mainClass> 
         <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
         <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 
        </manifest> 
       </archive> 
      </configuration> 
     </execution> 
     <execution> 
      <id>test-jar</id> 
      <phase>package</phase> 
      <goals> 
       <goal>test-jar</goal> 
      </goals> 
      <configuration> 
       <archive>      
        <manifest> 
         <addClasspath>true</addClasspath> 
         <classpathPrefix>lib/</classpathPrefix>       <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
         <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 
        </manifest> 
       </archive> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

이를 실행 한 후, 당신은 하나 [your artifactID]-[version].jar 명명 한 이름, 당신의 출력 디렉토리에 두 개의 항아리의가 있어야 [your artifactID]-[version]-tests.jar

관련 문제