Używam macierzystego POM, który definiuje wtyczkę, której nie chcę uruchamiać w podrzędnym POM. Jak mogę całkowicie wyłączyć wtyczkę w pompie dziecięcym?
Ograniczenie: nie mogę zmienić samego macierzystego POM.
Podczas wyłączania funkcji Findbugs w dziecku POM:
<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>
Uwaga: pełna definicja wtyczki Findbugs znajduje się w naszym nadrzędnym / super POM, więc odziedziczy wersję i tak dalej.
W Maven 3 będziesz potrzebować:
<configuration>
<skip>true</skip>
</configuration>
dla wtyczki.
<id>…</id>
część macierzystego POM, wtedy u mnie zadziałało.<skip>
parametr.Sprawdź, czy wtyczka ma parametr konfiguracyjny „pomiń”. Prawie wszyscy. jeśli tak, po prostu dodaj to do deklaracji w dziecku:
Jeśli nie, użyj:
źródło
Wątek jest stary, ale może ktoś jest nadal zainteresowany. Najkrótsza forma, jaką znalazłem, to dalsze ulepszenia na przykładzie λlex i bmargulies. Tag wykonania będzie wyglądał następująco:
2 punkty, które chcę podkreślić:
Po wysłaniu okazało się, że jest już w stackoverflow: W wielomodułowym projekcie Maven, jak mogę wyłączyć wtyczkę w jednym dziecku?
źródło
Wiem, że ten wątek jest naprawdę stary, ale rozwiązanie od @Ivan Bondarenko pomogło mi w mojej sytuacji.
W moim
pom.xml
.Zależało mi na wyłączeniu wykonywania
generate-citrus-war
dla określonego profilu i takie było rozwiązanie:źródło