2016-10-13 3 views
0

빌드 단계에 관계없이 모든 Maven 빌드에서 하나의 Maven 플러그인 목표 (jacoco:dump)를 실행하고 싶습니다. 실행 된 마지막 목표 여야합니다.마지막으로 하나의 Maven 플러그인 목표를 실행하십시오.

구현할 생각 중 하나는 jacoco : 덤프 목표를 컴파일 단계에 연결하여 모든 빌드에서이를 실행하지만 마지막 단계의 마지막 목표로 덤프를 실행할 수 없다는 것입니다.

실행 순서 내가 mvn verify로, jacoco:dump이 확인 단계 이후 실행될 수 있습니다 구축 할 경우

validate -> compile -> (any other phase and plugin goal execution) -> jacoco:dump 

그래서; mvn compile으로 빌드하면 jacoco:dump이 컴파일 단계 후에 실행될 수 있습니다.

Maven에서이 문제를 해결할 방법이 있습니까?

답변

0

솔루션은 간단하지만 효과적입니다. 프로젝트 pom에 구성하지 않고 명령 줄에서 직접 플러그인 목표를 실행할 수 있습니다. official documentation에 명시된 바와 같이 그들은 주어진 순서대로 실행되는 명령 줄에서 여러 목표를 실행 해 때, 나는 단지 명령의 말미에 jacoco 플러그인을 추가해야한다

mvn compile org.jacoco:jacoco-maven-plugin:0.7.7.201606060606:dump sonar:sonar 

예 첫째 컴파일 위 jacoco:dump을 실행 한 다음 실행합니다. sonar:sonar

2

하나 (해키) 방법 속성으로 때마다 위상을 통과하는 것입니다 감사합니다. 같은 뭔가 :

<execution> 
    <id>jacoco</id> 
    <phase>${phase}</phase> 
    <goals> 
     <goal>dump</goal> 
    </goals> 
    </execution> 

mvn compile -Dphase=compile 또는 mvn test -Dphase=test 등 아마 없을 가장 우아한 해결책하지만 구현하기 매우 쉬운 호출.

+0

감사합니다. 그리고 내가 직접 플러그인 목표를 사용한다면 어떻게 생각하니? 'mvn test jacoco : dump'와 같습니다. [여기] (https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Build_Lifecycle_Basics)에 명시된 바와 같이 실행 순서는 명령 줄에 지정된 명령이므로 명령을 실행하면' jacoco : dump '를 원하는 모든 단계가 끝나면 해결할 수 있습니다. 어떻게 생각해? – gvdm

+1

네, 그 소리가 나아요! – Revive

관련 문제