Mavenの目標がJavaクラスの実行をトリガーするようにします。私はMakefile
を次の行で移行しようとしています:
neotest:
mvn exec:Java -Dexec.mainClass="org.dhappy.test.NeoTraverse"
そして、mvn neotest
がmake neotest
が現在行っていることを生成したいと思います。
execプラグインのドキュメント も Maven Antタスク ページにも、簡単な例はありませんでした。
現在、私は:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions><execution>
<goals><goal>Java</goal></goals>
</execution></executions>
<configuration>
<mainClass>org.dhappy.test.NeoTraverse</mainClass>
</configuration>
</plugin>
ただし、コマンドラインからプラグインをトリガーする方法はわかりません。
Exec-maven-pluginに対して定義したグローバル構成を使用:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<configuration>
<mainClass>org.dhappy.test.NeoTraverse</mainClass>
</configuration>
</plugin>
コマンドラインでmvn exec:Java
を呼び出すと、クラスorg.dhappy.test.NeoTraverse
を実行するように構成されたプラグインが呼び出されます。
そのため、コマンドラインからプラグインをトリガーするには、次を実行します。
mvn exec:Java
ここで、標準ビルドの一部としてexec:Java
目標を実行する場合、目標を デフォルトの特定のphaseにバインドする必要があります。ライフサイクル 。これを行うには、phase
要素で目標をバインドするexecution
を宣言します。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>my-execution</id>
<phase>package</phase>
<goals>
<goal>Java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>org.dhappy.test.NeoTraverse</mainClass>
</configuration>
</plugin>
この例では、package
フェーズでクラスが実行されます。これは単なる例であり、ニーズに合わせて調整してください。プラグインバージョン1.1でも動作します。
複数のプログラムを実行するために、profiles
セクションも必要でした。
<profiles>
<profile>
<id>traverse</id>
<activation>
<property>
<name>traverse</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<executable>Java</executable>
<arguments>
<argument>-classpath</argument>
<classpath/>
<argument>org.dhappy.test.NeoTraverse</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
これは、次のように実行可能です。
mvn exec:exec -Dtraverse