4

コマンド ラインから antrun-plugin を使用して特定のターゲットを実行するにはどうすればよいですか?

mvn antrun:run実行しません。


<project>
    ...
    <build>
        <plugins>
            ...
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>myExecution</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <ant target="myTarget" inheritRefs="true">
                                    ...
                                </ant>
                            </tasks>
                        </configuration>
                    </execution>
                </executions>

                <dependencies>
                    ...
                </dependencies>
            </plugin>
            ...
        </plugins>
        ...
    </build>
    ...
</project>
4

4 に答える 4

8

コマンド ラインから antrun-plugin を使用して特定のターゲットを実行するにはどうすればよいですか?

この質問に厳密に答えることはできません。

できることは次のいずれかです。

1.プラグインレベルを提供するconfiguration

<plugin>
   <artifactId>maven-antrun-plugin</artifactId>
   <configuration>
       ....
   </configuration>
</plugin>

この構成は、プラグインを呼び出すときに使用されます (プラグインの呼び出し方法に関係なく、ライフサイクルの一部である cli から)。

2.実行レベルを提供しますconfiguration(これはあなたがしたことです)

<plugin>
   <artifactId>maven-antrun-plugin</artifactId>
   <executions>
       <execution>
           <id>myExecution</id>
           <phase>deploy</phase>
           <goals>
               <goal>run</goal>
           </goals>
           <configuration>
               <tasks>
                   <ant target="myTarget" inheritRefs="true">
                       ...
                   </ant>
               </tasks>
            </configuration>
        </execution>
    </executions>
</plugin>

そして、プラグインがバインドされているフェーズを呼び出します (deployこの場合)。

configuration3.特別なdefault-cli実行 IDの実行レベルを提供する

<plugin>
   <artifactId>maven-antrun-plugin</artifactId>
   <executions>
       <execution>
           <id>default-cli</id>
           <configuration>
               <tasks>
                   <ant target="myTarget" inheritRefs="true">
                       ...
                   </ant>
               </tasks>
            </configuration>
        </execution>
    </executions>
</plugin>

Maven 2.2.0 ( MNG-3401を参照) の時点で、コマンドラインから直接呼び出されるゴールは、特別な executionId と呼ばれる特別な executionId を使用して、他のプラグイン呼び出しとは別に POM で構成できますdefault-cli。つまり、上記の構成は、コマンド ラインからプラグインを呼び出す場合にのみ使用されます。

ただし、いずれにせよ、要素target内で特定の Ant を呼び出すことはできません。configuration近づきつつあるものを実装するためにプロファイルを変更することもできますが、本当にこの方向に進みたい場合は、Ant を使用することをお勧めします。

参考文献

于 2010-10-19T20:55:20.060 に答える
1

次の例を参照してください: http://docs.codehaus.org/display/MAVENUSER/Antrun+Plugin 基本的に、ant ターゲットを通常の build.xml に記述します。<target>次に、buildFile 名と targetName を動的に決定する単一の構成の下で定義し、

<ant andfile="${buildFile}" target="${targetName}" inheritAll="true" inheritRefs="true"/>
于 2013-07-19T21:36:12.773 に答える
0

それが機能しない理由かどうかはわかりませんが、使用している構文は非推奨です。次のようなものが必要です。

<configuration>
  <target name="myTarget">
    <!--
      Place any Ant task here. You can add anything
      you can add between <target> and </target> in a
      build.xml.
    -->    
  </target>
<configuration>

詳細はこちら: http://maven.apache.org/plugins/maven-antrun-plugin/usage.html

于 2010-10-19T17:31:19.960 に答える