默认情况下,在我的项目POM中,exec-maven-plugin, rpm-maven-plugin
将被执行,
这在本地编译/构建中不是必需的。
我想通过传递命令行参数来跳过这些插件执行 我尝试下面的命令跳过它们像普通的插件一样,但是没有工作!
mvn install -Dmaven.test.skip = true -Dmaven.exec.skip = true -Dmaven.rpm.skip =真
答案 0 :(得分:18)
这个page应该告诉你cmdline传递的参数的名称(即用户属性)被称为skip
,这是一个选择不当的名字。要解决此问题,请执行以下操作:
<properties>
<maven.exec.skip>false</maven.exec.skip> <!-- default -->
</properties>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<skip>${maven.exec.skip}</skip>
</configuration>
</plugin>
答案 1 :(得分:5)
从规范中尝试-Dexec.skip
:
http://www.mojohaus.org/exec-maven-plugin/java-mojo.html#skip
答案 2 :(得分:1)
使用配置文件(尽可能少)和执行阶段,您可以实现无法处理skip属性的插件所需的内容:
插件配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<executions>
<execution>
<phase>${rpmPackagePhase}</phase>
<id>generate-rpm</id>
<goals>
<goal>rpm</goal>
</goals>
</execution>
</executions>
<configuration>
...
</configuration>
</plugin>
配置文件配置:
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<rpmPackagePhase>none</rpmPackagePhase>
</properties>
</profile>
<profile>
<id>rpmPackage</id>
<activation>
<property>
<name>rpm.package</name>
<value>true</value>
</property>
</activation>
<properties>
<rpmPackagePhase>package</rpmPackagePhase>
</properties>
</profile>
</profiles>
调用:
mvn package -Drpm.package=true [...]