54

特定のプロファイルで実行している場合、プラグインの実行を無効にする方法を探しています。

これは、プロファイルが選択されている場合にプラグインを実行するのとは逆です。

私のユースケース: 私の Maven ビルドには大量のプラグインがありますが、私の開発マシンで実行する場合、それらのいくつかをスキップしたいと考えています。これらのプラグインをローカルでコメントアウトする代わりに、「dev」プロファイルを使用してビルドを実行できるようにしたいと考えています。プラグインは、継続的なビルドで引き続き実行されます。

アイデア?

4

3 に答える 3

105

特定のプロファイルがアクティブな場合にプラグインの実行を無効にする便利な方法があります。

まず、プラグインの実行に次のような識別子を追加する必要があります。

<build>
    <plugins>
        <!-- (...) -->
        <plugin>
            <groupId>nl.geodienstencentrum.maven</groupId>
            <artifactId>sass-maven-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <id>styles-compilation</id> <!-- plugin execution identifier -->
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>update-stylesheets</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

次に、このプラグインが実行されないプロファイルを定義する必要があります。

<profiles>
    <profile>
        <id>no-sass</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>nl.geodienstencentrum.maven</groupId>
                    <artifactId>sass-maven-plugin</artifactId>
                    <version>2.1</version>
                    <executions>
                        <execution>
                            <id>styles-compilation</id> <!-- here there must be the same identifier as defined in <build><plugins> section -->
                            <phase>none</phase> <!-- this disables plugin -->
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

標準の maven ビルドを実行すると、次のようになります。

mvn clean package

sass-maven-plugin実行されますが、実行中は次のようになります。

mvn clean package -P no-sass

sass-maven-pluginは実行されません

于 2016-09-18T14:23:42.333 に答える