2016-06-09 5 views
0

두 개의 빌드를 실행중인 maven 프로젝트가 있습니다. 하나의 빌드에서Maven 프로젝트에서 명령 줄에서 jar 생성을 비활성화하는 방법은 무엇입니까?

나는 그것에 받는다는 모듈의 항아리 생성을 비활성화하여 빌드 시간을 절약 할 수 있습니다. (45 개 받는다는 모듈이 있습니다). 항아리를 만드는 데 사용되는 Maven-Jar-Plugin이 있습니다.

기본적으로 확실한 플러그인이 있지만 단위 테스트를 건너 뛰는 데 사용되는 -Dskiptests과 비슷한 것을 찾고있는 경우 명령 줄에서 jar 만들기를 조건부로 사용하지 않도록 설정하려고합니다.

답변

0

maven-jar-plugindoes not provide 어떤 건너 뛰기 옵션을 선택합니다.

그러나 여러 가지 방법으로 요구 사항을 충족시킬 수 있습니다.

당신은 단지 기본 (via default mappings) 항아리 생성, 즉, package 단계로 가져 오는 phase을 건너 뛰고 같은 단지 당신이 할 경우

mvn clean test 

추가 단계가 이해가되지 것입니다 호출 할 수 있습니다 어쨌든 jar 파일을 만들지 마십시오 : package, install, deploy은 처리 할 것이 없습니다. 또한 추가 통합 단계는 통합 테스트 전략에 따라 영향을받을 수 있습니다.

mvn clean install -Djar.creation=false 

대신 건너 뛰시겠습니까 : 다음과 같은

또는 당신이 당신의 치어를 구성 할 수 있습니다 다음과 같은 받는다는을 실행하는 동안 그와 같이

<properties> 
    <jar.creation>package</jar.creation> 
</properties> 

<build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>3.0.0</version> 
     <executions> 
      <execution> 
      <id>default-jar</id> 
      <phase>${jar.creation}</phase> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
</build> 

를, 기본 동작은 여전히 ​​항아리 생성을 제공 할 것이다 항아리의 창조.

우리가 실제로하고있다 : 우리는 우리의 실행 ID를 무시하는 maven-jar-plugin

  • 의 기본 실행을 다시 정의하는

    • 등 점점 더 컨트롤로 그 위에
    • 우리는 배치된다 해당 실행 단계가 구성 가능한 (속성을 통해) 단계로 바인딩
    • 기본 단계 (속성 값)가 계속 유지됨 package
    • 명령 줄 시간 표준 Maven 단계와 다른 값으로 변경할 수 있습니다. 즉, -Djar.creation=none도 사용할 수 있습니다.
  • +0

    @ Priyanka.Patil가 도움이 되었습니까? 당신은 더 이상의 피드백이나 [수락] (http://meta.stackexchange.com/q/5234/314893)을 공유하지 않았습니다. 그냥 확인해. –