web-dev-qa-db-ja.com

Mavenのコマンドライン引数からexec-maven-pluginをスキップします

私のプロジェクトPOMのデフォルトでは、exec-maven-plugin, rpm-maven-pluginが実行されますが、これはローカルのコンパイル/ビルドでは必要ありません。

コマンドライン引数を渡してこれらのプラグインの実行をスキップしたいのですが、通常のプラグインのようにスキップするために以下のコマンドを試しましたが、機能しませんでした!

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

13
Reddy

この 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>
21
Robert Scholte

仕様から-Dexec.skipを試してください:

http://www.mojohaus.org/exec-maven-plugin/Java-mojo.html#skip

7
Peter Rader

プロファイル(可能な限り少ない)と実行フェーズを使用すると、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 [...]
1
Ananda