How can I find out the default phase a Maven goal binds to?

谁说胖子不能爱 提交于 2019-12-20 12:29:20

问题


In Maven, how can I find out the default phase of a goal (if any default phase exists at all for this particular goal)?

Example

I am using a Maven plugin called Jetty Maven Plugin. It contains a goal jetty:run. Running the command mvn jetty:run (notice this command only contains a goal, not a phase) first builds a pom.xml-specified web application up to the default test-compile phase, then deploys it inside a Jetty server.

As pointed out in the Mojo API Specification, a goal can have a default phase assigned to it in its source code (via @phase or via @execute phase). In case of jetty:run, the default phase is @execute phase="test-compile".

But finding the source code file can get quite complicated. Is there an easier way for finding out the default phase?


回答1:


The simplest solution is to use the maven-help-plugin like the following:

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

which will printout many information but in the first lines:

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

  Available parameters:
  ....

If you try that for jetty:run like this:

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

You will get a large output but you won't see a default phase, cause it's intended to be called from command line:

[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:
      ....


来源:https://stackoverflow.com/questions/12309652/how-can-i-find-out-the-default-phase-a-maven-goal-binds-to

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!