4

プロジェクトの初期設定ファイルにはmaven-antrun-pluginを使用しています。ただし、jetty:runを起動するたびではなく、開発環境の初期化を最初に開始するときに、構成ファイルを1回だけ初期化する必要があります。

たとえば、プロセスリソースにフェーズをアタッチすると、jettyを起動するたびに、構成ファイルがリセットされます。

だから私はこのようにantrunを設定しました:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
        <goals>
            <goal>run</goal>
        </goals>
        <configuration>
            <target name="init_config_files">
                <!-- init files -->
            </target>
        </configuration>
        </execution>
    </executions>
</plugin>

mvn antrun:runを起動すると、次のエラーが返されます:「[INFO]定義されたantターゲットがありません-スキップされました」。また、target: "mvn antrun:run -Dtarget=init_config_files"を指定した場合も同じです。

4

4 に答える 4

7

これを試して:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
                <execution>
                    <id>default-cli</id>
                    <configuration>
                        <target>
                            <property name="compile_classpath" refid="maven.compile.classpath" />
                            <echo message="compile classpath: ${compile_classpath}" />
                        </target>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

そしてこれを実行します:

 mvn antrun:run
于 2012-06-13T07:14:42.813 に答える
6

私がこれまでに見つけた最良の解決策:

        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
                <execution>
                    <id>go-live</id>
                    <configuration>
                        <target>
                            <!-- go live! -->
                            <exec executable="${basedir}/deploy2server.sh" failonerror="true" dir="${basedir}">
                                <arg value="deploy" />
                                <arg value="${deploy.to.server}" />
                                <arg value="${jetty.port.live}" />
                            </exec>
                        </target>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

そしてこれを実行します:

 mvn antrun:run@go-live

このソリューションは、ターゲットが誤って実行されることを回避します。「mvnantrun:run」と入力するだけでは実行されず、通常のMaven実行中も実行されません。最終的な配布パッケージに対して行われた統合を含むすべてのモジュールが正常に実行された後、これをjenkinsインスタンスのqa自動デプロイに使用しています。

于 2016-02-18T20:01:52.033 に答える
4

私はちょうど同じ問題に遭遇し、最終的にそれを理解しました:antタスクを1回だけ実行したい場合は、次のようにプラグインを設定できます。

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <configuration>
        <target name="init_config_files">
            <!-- init files -->
        </target>
    </configuration>
</plugin>

mvn antrun:runそしてそれを実行するために使用します。そうすれば、アリのものはどの段階にも縛られません。

于 2013-11-13T14:56:08.773 に答える
1

ビルドの一部を特別な条件で(たとえば1回)実行する必要がある場合は、それらの部分をMavenプロファイルに入れてから、プロファイル名を指定してMavenを呼び出すことができます。mvn -p init_config_files package

于 2012-05-11T15:39:46.630 に答える