首页 > 解决方案 > exec-maven-plugin 跳过多个条件

问题描述

当发生 2 个条件中的任何一个时,我需要跳过执行。

像这样的东西:

mvn clean test -DconditionA=false -DconditionB=false

这是我的示例 pom:

    <build>
      <plugins>
          <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>exec-maven-plugin</artifactId>
              <version>1.6.0</version>
              <executions>
                  <execution>
                      <id>list-dir</id>
                      <phase>validate</phase>
                      <goals>
                          <goal>exec</goal>
                      </goals>
                      <configuration>
                          <executable>ls</executable>
                          <workingDirectory>.</workingDirectory>
                          <arguments>
                              <argument>-ls</argument>
                          </arguments>
                          <skip>${conditionA}</skip>
                          <skip>${conditionB}</skip>
                      </configuration>
                  </execution>
              </executions>
          </plugin>
      </plugins>
</build>

我想要的是能够跳过这个执行无论条件A还是条件B是真的。只有第二个跳过有效,因为它会覆盖第一个。

有什么办法可以做到这一点?

标签: javamavenskipexec-maven-plugin

解决方案


conditionAconditionB设置为 true时,您可以使用配置文件覆盖:

<profiles>
  <profile>
    <activation>
      <property>
        <name>conditionB</name>
        <value>true</value>
      </property>
    </activation>
    <property>
      <conditionA>true</conditionA>
    </property>
  </profile>
</profiles>

这将适用于:

mvn clean test -DconditionA=true

或者:

mvn clean test -DconditionB=true

它可能不适用于:

mvn clean test -DconditionA=false -DconditionB=true

我没试过。如果没有,而您确实需要,则需要为设置它的 A 和 B 添加另一个属性和配置文件。


推荐阅读