默认情况下,在我的项目POM中,exec-maven-plugin, rpm-maven-plugin
将被执行, 在本地编译/构建中不需要。从Maven中的命令行参数跳过exec-maven-plugin
我想跳过这些插件执行通过传递命令行参数 我试过下面的命令跳过他们像正常的插件,但没有工作,但!
MVN安装-Dmaven.test.skip =真-Dmaven.exec.skip =真 -Dmaven.rpm.skip =真
默认情况下,在我的项目POM中,exec-maven-plugin, rpm-maven-plugin
将被执行, 在本地编译/构建中不需要。从Maven中的命令行参数跳过exec-maven-plugin
我想跳过这些插件执行通过传递命令行参数 我试过下面的命令跳过他们像正常的插件,但没有工作,但!
MVN安装-Dmaven.test.skip =真-Dmaven.exec.skip =真 -Dmaven.rpm.skip =真
这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>
尝试-Dexec.skip
从规格:
http://www.mojohaus.org/exec-maven-plugin/java-mojo.html#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 [...]
感谢。不知何故,我错过了。你能告诉我一下rpm-maven-plugin吗?我已经看到他们的项目页面,找不到任何东西:( – Reddy 2014-10-30 03:12:01
rpm-maven-plugin没有跳过属性,这就是为什么你找不到它。AFAIK rpm是结束/包结果,所以我想知道恕我直言,大多数情况下,如果你需要跳过某些东西,这表明你的进程或你的POM结构/层次结构是不正确的。 – 2014-10-30 20:32:52
它在本地Macbook中不起作用。有mac os的问题,我只是想跳过本地生成 – Reddy 2014-10-31 08:03:51