2011-04-05 4 views
1

나는 maven을 처음 사용합니다.부모 pom에 정의 된 maven release plugin을 비활성화하십시오.

myWebProduct 
    pom.xml 
    coreModule 
    webModule 
    htmlTestModule 

받는다는 해제 플러그인이 myWebProduct의 부모 pom.xml 파일의 회사 수준에서 정의를 다음과 같이 나는 제품 구조를 가지고있다. 출시 플러그인 기본 목표는 deploy이고 기본 준비 목표는 clean verify install입니다.

레벨에서 제품을 출시하고 싶습니다. htmlTestModule을 생략하고 싶습니다. deploy 수명주기를 htmlTestModule으로 설정하면 원격 Tomcat 서버에 war 파일을 배포하게되므로 릴리스하는 동안이 작업을 원하지 않습니다.

htmlTestModulepom.xml에 다음을 추가하려고했습니다.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.1</version>  
    <configuration> 
    <skip>true</skip> 
    <preparationGoals>clean validate</preparationGoals> 
    <goals>testCompile</goals> 
    </configuration> 
</plugin> 

그러나 'mvn release : perform'을 실행하는 경우는 myWebProduct입니다. 배포 목표가 여전히 htmlTestModule에서 실행 된 것을 확인했습니다. 누구든지 이걸 도와 줄 수 있니?

그리고 나는 또한 htmlTestModule에 다음과 같은 노력이 :

<plugins>   
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <version>2.5</version>  
    <executions> 
     <execution> 
     <id>donotRunMe</id> 
     <phase>none</phase> 
    </execution>      
    </executions> 
</plugin> 

아직도, 배포 목표는 항상 htmlTestModule에서 실행. 감사합니다.

답변

0

나는 당신이 여기에 잘못된 접근을하고 있다고 생각합니다. 설명하겠습니다.

maven의 deploy 단계는 원격 서버 또는 이와 유사한 배포를 의미하지 않습니다. 이는 원격 저장소에 배포하기위한 것입니다.

따라서 모듈의 배포 단계를 건너 뛰지 말고 deploy 단계의 원격 Tomcat 서버와의 배포를 예를 들어 특정 목표로 삼아서는 안됩니다.

+0

답장을 보내 주셔서 감사합니다. 내 테스트 목표가 그것에 달려 있기 때문에 prepare-package-phase에서 tomcat 서버를 재배치하기 위해 배포 용 war 파일을 묶었습니다. 이 종류의 테스트 패키지에 대한 귀하의 제안은 무엇입니까? – user639812

+0

그럼 모든게 다르지만 내 일반적인 규칙은 내 빌드가 (통합) 테스트를 포함하여 자체 포함되어야한다는 것입니다. 그래서 로컬 (빌드에) Tomcat 인스턴스 (예 : Cargo 또는 Tomcat 플러그인 사용)에서 배포하고 테스트 해 보겠습니다. 이렇게하면 빌드가 특정 구성이 필요한 외부 리소스에 의존하지 않습니다. 릴리스를 실행하는 데 너무 많은 시간이 소요된다면 전체 배포 단계가 아니라 tomcat 인스턴스에서 테스트를 건너 뛰는 방법을 찾도록 제안합니다. 또한이 테스트를위한 최상의 단계는 아마도 통합 테스트 단계 일 것입니다. HTH. – SaM