15

Maven では、ゴールのデフォルト フェーズを見つけるにはどうすればよいですか (この特定のゴールにデフォルト フェーズが存在する場合)。

Jetty Maven Pluginという Maven プラグインを使用しています。目標が含まれていますjetty:run。コマンドを実行するとmvn jetty:run(このコマンドにはフェーズではなくゴールのみが含まれていることに注意してください)、最初pom.xmlに -指定された Web アプリケーションをデフォルトtest-compileフェーズまで構築し、次にそれを Jetty サーバー内にデプロイします。

Mojo API 仕様で指摘されているように、ゴールにはソース コード内で (@phaseまたは 経由で@execute phase) デフォルト フェーズを割り当てることができます。の場合jetty:run、デフォルトのフェーズは@execute phase="test-compile"です。

しかし、ソース コード ファイルの検索は非常に複雑になる可能性があります。デフォルトのフェーズを見つける簡単な方法はありますか?

4

1 に答える 1

21

最も簡単な解決策は、次のようにmaven-help-pluginを使用することです。

mvn help:describe -DartifactId=maven-compiler-plugin -DgroupId=org.apache.maven.plugins -Dgoal=compile -Ddetail

多くの情報が出力されますが、最初の行には次のように表示されます。

[INFO] Mojo: 'compiler:compile'
compiler:compile
  Description: Compiles application sources
  Implementation: org.apache.maven.plugin.CompilerMojo
  Language: java
  Bound to phase: compile

  Available parameters:
  ....

jetty:run でそれを試すと、次のようになります。

mvn help:describe -DartifactId=jetty-maven-plugin -DgroupId=org.mortbay.jetty -Dgoal=run -Ddetail

大きな出力が得られますが、デフォルト フェーズは表示されません。これは、コマンド ラインから呼び出されることを意図しているためです。

[INFO] Mojo: 'jetty:run'
jetty:run
  Description: This goal is used in-situ on a Maven project without first
    ....
    redeploying.
     .....

  Implementation: org.mortbay.jetty.plugin.JettyRunMojo
  Language: java
  Before this mojo executes, it will call:
    Phase: 'test-compile'

  Available parameters:
      ....
于 2012-09-07T07:51:24.973 に答える