부모 POM에 정의 된 Maven 플러그인 비활성화
하위 POM에서 실행하지 않으려는 플러그인을 정의하는 상위 POM을 사용하고 있습니다. 자식 폼에서 플러그인을 완전히 비활성화하려면 어떻게해야합니까?
제약 조건 : 부모 POM 자체를 변경할 수 없습니다.
자식 POM에서 Findbugs를 비활성화 할 때 다음이 작동합니다.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<executions>
<execution>
<phase>none</phase>
</execution>
</executions>
</plugin>
참고 : Findbugs 플러그인의 전체 정의는 부모 / 슈퍼 POM에 있으므로 버전 등을 상속받습니다.
Maven 3에서는 다음을 사용해야합니다.
<configuration>
<skip>true</skip>
</configuration>
플러그인.
플러그인에 'skip'구성 매개 변수가 있는지 확인하십시오. 거의 다 그렇습니다. 그렇다면 자식의 선언에 추가하십시오.
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
그렇지 않은 경우 다음을 사용하십시오.
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<executions>
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
스레드는 오래되었지만 여전히 누군가 관심이 있습니다. 내가 찾은 가장 짧은 형태는 λlex와 bmargulies의 예제에서 더 개선 된 것입니다. 실행 태그는 다음과 같습니다.
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase/>
</execution>
강조하고 싶은 2 가지 사항 :
- 단계는 '없음'보다 덜 해키처럼 보이지만 여전히 해킹은 아닙니다.
- id는 재정의하려는 실행과 같아야합니다. 실행을 위해 id를 지정하지 않으면 Maven은 암시 적으로 (직관적으로 직관적으로 예상하지 않는 방식으로) 수행합니다.
게시 한 후에 이미 스택 오버 플로우에 있음을 발견했습니다 .Maven 다중 모듈 프로젝트에서 한 어린이에서 플러그인을 비활성화하려면 어떻게해야합니까?
이 스레드가 실제로 오래되었다는 것을 알고 있지만 @Ivan Bondarenko의 솔루션이 내 상황에서 도움이되었습니다.
나는 내 다음과 같은했다 pom.xml
.
<build>
...
<plugins>
<plugin>
<groupId>com.consol.citrus</groupId>
<artifactId>citrus-remote-maven-plugin</artifactId>
<version>${citrus.version}</version>
<executions>
<execution>
<id>generate-citrus-war</id>
<goals>
<goal>test-war</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
내가 원했던 generate-citrus-war
것은 특정 프로파일 의 실행을 비활성화하는 것이 었으며 이것이 해결책이었습니다.
<profile>
<id>it</id>
<build>
<plugins>
<plugin>
<groupId>com.consol.citrus</groupId>
<artifactId>citrus-remote-maven-plugin</artifactId>
<version>${citrus.version}</version>
<executions>
<!-- disable generating the war for this profile -->
<execution>
<id>generate-citrus-war</id>
<phase/>
</execution>
<!-- do something else -->
<execution>
...
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
참고 URL : https://stackoverflow.com/questions/7821152/disable-a-maven-plugin-defined-in-a-parent-pom
'IT박스' 카테고리의 다른 글
C # 오류 : 부모에 인수가 0 인 생성자가 없습니다. (0) | 2020.06.19 |
---|---|
vector :: resize ()와 vector :: reserve () 중에서 선택 (0) | 2020.06.18 |
Executors.newCachedThreadPool () 및 Executors.newFixedThreadPool () (0) | 2020.06.18 |
ACID와 호환되는 NoSQL 데이터 저장소가 있습니까? (0) | 2020.06.18 |
소프트 키보드가 나타날 때 레이아웃을 조정하는 방법 (0) | 2020.06.18 |