1. ホーム
  2. maven-2

[解決済み] Mavenを使用してプログラムを実行するにはどうすればよいですか?

2022-06-10 09:41:40

質問

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 を宣言し、そこにゴールをバインドします。 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でも動作します。