0

耳をサーバーにデプロイする際に問題が発生しています。異なる環境 (dev、int、acc など) での展開には違いがあります。環境ごとに、1 つの weblogic サーバーにデプロイします。場合によっては、2 番目のサーバーへの展開も必要になります。

このため、次のようにビルドタグで antrun プラグインを使用しようとしました (すべての環境でデプロイ時に実行する必要があるため:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <configuration>
                <tasks>
                    ... Here is our deployment task ...
                </tasks>
            </configuration>
            <executions>
                <execution><id>deploy_default</id>
                    <phase>deploy</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

そして、環境固有のものにはプロファイルを使用します (ファイル内の値の変更、2 番目のサーバーへのデプロイなど)。ここで、次のようないくつかのアリのことをもう一度行います。

<profile>
        <id>intg</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <configuration>
                        <tasks>
                            ... Change value in files ...
                        </tasks>
                    </configuration>
                    <executions>
                        <execution>
                            <id>0_resource</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>run</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>

私たちが目にしている問題は、たとえば mvn clean install -Pintg を実行すると、ビルドで antrun プラグインも実行されることです。これは展開フェーズを対象としているため、これを行うべきではありません。

いくつかの調査によると、ビルド タグに 2 つの個別の antrun プラグインを含めることはできません。これは、ビルドのタグとプロファイル タグのタグで同じですか? maven replacer プラグインを使用できることはわかっているので、その場合、それらはプロファイル タグの antrun プラグインにはなりませんが、プロファイル タグの ant で他のことが発生する必要がある場合、それは解決策ではありません。

追記?デフォルトのプロファイルで antrun プラグインを定義することは可能かもしれませんが、他のプロファイルが要求されている場合でも、そのプロファイルを常に実行する必要があると言う方法はありますか? したがって、-Pintg -> を実行すると、-Pdefault, intg が実行されます (そうしないと、どこでも default と入力する必要がある場合に混乱するため)

注意 2: プロファイルの activeByDefault を true に設定できることは知っていますが、-P を指定しなかった場合、これはデフォルトのプロファイルでのみ実行されると思いますか?

4

1 に答える 1

1

構成は、実行レベルではなく、プラグイン レベルでした。したがって、実行タグ内に構成を配置することで、特定のフェーズと目標に対してのみ実行されます!

したがって、次のようになります。

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
            <execution>
                <configuration>
                    <tasks>
                        ... Here is our deployment task ...
                    </tasks>
                </configuration>
                <id>deploy_default</id>
                <phase>deploy</phase>
                <goals>
                    <goal>run</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
</plugins>

于 2014-02-06T16:52:51.200 に答える