У меня есть родительский pom с несколькими плагинами. В моем дочернем помпе я хочу исключить один плагин.
Как я могу это сделать?
У меня есть родительский pom с несколькими плагинами. В моем дочернем помпе я хочу исключить один плагин.
Как я могу это сделать?
Вы можете объявить все плагины в родительском pom в <pluginManagement>
. В каждом ребенке вы можете объявлять плагины, которые используются этим ребенком. Таким образом, вы можете включать или исключать плагины по мере необходимости.
Вы также можете посмотреть эту связанную SO дискуссию.
У меня было аналогичное требование запуска некоторых плагинов в дочернем, но не родительского ПОМ. я достиг этого, указав <skip>true</skip>
в родительском POM.
запись родительского pom ниже
<plugin>
<groupId>eviware</groupId>
<artifactId>maven-soapui-plugin</artifactId>
<version>4.0.0</version>
<inherited>false</inherited>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
</dependency>
</dependencies>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
Запись дочернего проекта ниже
<plugins>
<plugin>
<groupId>eviware</groupId>
<artifactId>maven-soapui-plugin</artifactId>
<version>4.0.0</version>
<configuration>
<settingsFile>site-service-web/src/test/soapui/soapui-settings.xml</settingsFile>
<projectFile>site-service-web/src/test/soapui/PodifiSite-soapui-project.xml</projectFile>
<outputFolder>site-service-web/target/surefire-reports</outputFolder>
<junitReport>true</junitReport>
<exportwAll>true</exportwAll>
<printReport>true</printReport>
</configuration>
</plugin>
</plugins>
Вы можете определить все плагины в родительском pom в разделе pluginManagement
<pluginManagement>
<plugins>
...
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>generate-sources</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeTypes>tar.bz2</includeTypes>
<outputDirectory>${project.basedir}/target/dependencies</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
</pluginManagement>
И после того, как в родительском и дочернем помпах вы можете контролировать фазу выполнения этого плагина
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<inherited>false</inherited>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
Если вы вставляете это в родительский pom, не забудьте указать опцию <inherited>false</inherited>
, ее отключить наследование выполнения в дочернем pom.
Вы можете использовать profile, активируемое свойством, чтобы определить, используется ли плагин или нет. По умолчанию свойство может быть активировано, и один проект, который вы не хотите использовать, может включать значение свойства, чтобы исключить плагин.