2016-07-06 1 views
1

일반 : 오버라이드 된 종속성 버전 (플러그인 종속성)이있는 명령 줄에서 maven 플러그인을 실행해야합니다. 플러그인은 프로젝트 pom에 정의되지 않습니다.런타임에 사용되는 종속성 버전을 명령 줄에서 덮어 씌우십시오.

콘크리트 : 팀 시티 빌드에서 단계로 maven-checkstyle-plugin을 실행해야합니다. 이 플러그인은 프로젝트 pom으로 정의되지 않습니다. 나는 명령 줄 다음 사용

mvn org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check -Dencoding=UTF-8 

그러나 here을 가리 켰을 때, 나는 플러그인을 최신으로 checkstyle을 실행해야합니다.

POM의 XML :

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <version>2.17</version> 
</plugin> 

커맨드 라인 :

mvn org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check 

POM의 XML :

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     <version>2.17</version> 
     <dependencies> 
     <dependency> 
      <groupId>com.puppycrawl.tools</groupId> 
      <artifactId>checkstyle</artifactId> 
      <version>7.0</version> 
     </dependency> 
     </dependencies> 
    </plugin> 

커맨드 라인 :

? 
+0

왜 pom에서 정의하지 않습니까? 이해가되지 않습니다 ... 명령 줄에서 종속 버전을 무시할 수 없습니다. 왜 이것을 필요로합니까? – khmarbaise

+0

당신은 아마 이것을 할 수 없습니다. 가능한 한 트릭은 대상'pom.xml' 파일의 복사본을 만들고,이 플러그인 구성을'pluginManagement' 섹션에 추가하고,이 대체 pom 파일에서 빌드를 실행하는 사전 빌드 단계를 실행하는 것입니다 '-f' 옵션 (예 :'mvn -f enhanced-pom.xml 클린 인스톨'). 더 나은 해결책은 모든 메이븐 프로젝트에서 사용되는 CI 관련 검사/요구 사항을 배치 할 수있는 엔터프라이즈 메이븐 부모를 배치하는 것입니다. –

답변

0

가장 좋은 방법은 설정으로 Maven profile을 만든 다음 CI로 빌드 할 때이 프로필을 활성화하는 것입니다.

예 프로파일 :

<profiles> 
<profile> 
    <id>ci</id> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     <version>2.17</version> 
     <dependencies> 
      <dependency> 
      <groupId>com.puppycrawl.tools</groupId> 
      <artifactId>checkstyle</artifactId> 
      <version>7.0</version> 
      </dependency> 
     </dependencies> 
     </plugin> 
    </plugins> 
    </build> 
</profile> 
</profiles> 

예 인 TeamCity에서 활성화하는 방법 : mvn checkstyle:check -Pci

보통 execution 부분은 어떤에서 정상적인 빌드의 일부로 자동으로 플러그인 목표를 실행하기 위해 구성 프로파일 추가 그러나 mvn install -Pci을 통해 ci 프로필이 활성화 된 경우에만 가능합니다.

관련 문제