하위 POM에서 실행하지 않으려는 플러그인을 정의하는 상위 POM을 사용하고 있습니다. 자식 폼에서 플러그인을 완전히 비활성화하려면 어떻게해야합니까?
제약 조건 : 부모 POM 자체를 변경할 수 없습니다.
답변
자식 POM에서 Findbugs를 비활성화 할 때 다음이 작동합니다.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<executions>
<execution>
<id>ID_AS_IN_PARENT</id> <!-- id is necessary sometimes -->
<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>