簡體   English   中英

從Maven的Command Line Argument中跳過exec-maven-plugin

[英]Skip exec-maven-plugin from Command Line Argument in Maven

默認情況下,在我的項目POM, exec-maven-plugin, rpm-maven-plugin將執行exec-maven-plugin, rpm-maven-plugin ,這在本地編譯/構建中是不需要的。

我想通過傳遞命令行參數來跳過這些插件執行,我嘗試下面的命令跳過它們像普通的插件,但不起作用!

mvn install -Dmaven.test.skip = true -Dmaven.exec.skip = true -Dmaven.rpm.skip = true

頁面應該告訴您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>

使用配置文件(盡可能少)和執行階段,您可以實現您想要的不處理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 [...]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM