3

A と B の 2 つのプロパティを maven に渡すことができます。

 mvn test -DA=true

また

 mvn test -DB=true

A または B のいずれかが定義されている場合、ターゲットをスキップします。A のみを次のように考えた場合に可能であることがわかりました。

  <plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
      <execution>
        <id>skiptThisConditionally</id>
        <phase>test</phase>
        <configuration>
          <target name="anytarget" unless="${A}">
             <echo message="This should be skipped if A or B holds" />
          </target>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

ここで、B も考慮する必要があります。これはできますか?

マティアス

4

1 に答える 1

5

build.xml複数のターゲットを組み合わせて定義できるようにする外部ファイルantcallを使用して、2番目の条件を確認するために、1つの追加のダミーターゲットを使用してそれを行います。

pom.xml

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>skiptThisConditionally</id>
            <phase>test</phase>
            <configuration>
                <target name="anytarget">
                    <ant antfile="build.xml"/>
                </target>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

およびbuild.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project name="SkipIt" default="main">
       <target name="main" unless="${A}">
          <antcall target="secondTarget"></antcall>
       </target>
       <target name="secondTarget" unless="${B}">
          <echo>A is not true and B is not true</echo>
       </target>
     </project>

2 つの条件しかない場合の代替ソリューション: <skip>1 つの条件 (つまり、maven のもの) には構成属性を使用し、もう 1 つの条件にはunless(つまり、ant のもの) を使用します。

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>skiptThisConditionally</id>
            <phase>test</phase>
            <configuration>
                <skip>${A}</skip>
                <target name="anytarget" unless="${B}">
                    <echo>A is not true and B is not true</echo>
                </target>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>
于 2013-02-22T10:42:41.883 に答える