目录
- 背景
- 帮助命令
- 使用举例
- 查看详细信息
- 查看指定目标
- 其他命令
背景
工作中使用到很多的Maven
插件,虽然可以从网上拷贝别人的配置来用,但是想要深入了解一个插件一共有哪些可用的配置参数,就无从下手了。
当然可以从插件的官方网站查看帮助手册,也可以通过Maven
的help
命令查看插件帮助,包括插件的简略和详细的描述信息,也可以查看插件所有的目标goal
,以及插件的配置参数等。
帮助命令
在命令行下面,使用Maven
的help:describe
目标查看插件信息:mvn help:describe -Dplugin=插件标识
- 通过plugin参数指定要查看的插件,插件标识可以是groupId:artifactId[:version]形式的,
- 其中version是可选的,
- 也可以是插件前缀,
- 它是插件的简称,
- 插件前缀和插件是一一对应的,
- 这种对应关系存储在Maven仓库元数据中:
https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml
- 比如插件前缀help和插件maven-help-plugin是对应的
<plugin><name>Apache Maven Help Plugin</name><prefix>help</prefix><artifactId>maven-help-plugin</artifactId>
</plugin>
使用举例
下面查看maven-help-plugin
插件的信息,即查看帮助命令自己的信息,下面两条命令是等价的:
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-help-plugin
mvn help:describe -Dplugin=help
输出查询结果如下
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-help-plugin:3.2.0:describe (default-cli) @ standalone-pom ---
[INFO] org.apache.maven.plugins:maven-help-plugin:3.2.0Name: Apache Maven Help Plugin
Description: The Maven Help plugin provides goals aimed at helping to makesense out of the build environment. It includes the ability to view theeffective POM and settings files, after inheritance and active profiles havebeen applied, as well as a describe a particular plugin goal to give usageinformation.
Group Id: org.apache.maven.plugins
Artifact Id: maven-help-plugin
Version: 3.2.0
Goal Prefix: helpThis plugin has 8 goals:help:active-profilesDescription: Displays a list of the profiles which are currently active forthis build.help:all-profilesDescription: Displays a list of available profiles under the currentproject.Note: it will list all profiles for a project. If a profile comes up with astatus inactive then there might be a need to set profile activationswitches/property.help:describeDescription: Displays a list of the attributes for a Maven Plugin and/orgoals (aka Mojo - Maven plain Old Java Object).help:effective-pomDescription: Displays the effective POM as an XML for this build, with theactive profiles factored in, or a specified artifact. If verbose, a commentis added to each XML element describing the origin of the line.help:effective-settingsDescription: Displays the calculated settings as XML for this project,given any profile enhancement and the inheritance of the global settingsinto the user-level settings.help:evaluateDescription: Evaluates Maven expressions given by the user in aninteractive mode.help:helpDescription: Display help information on maven-help-plugin.Call mvn help:help -Ddetail=true -Dgoal=<goal-name> to display parameterdetails.help:systemDescription: Displays a list of the platform details like system propertiesand environment variables.For more information, run 'mvn help:describe [...] -Ddetail'[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.613 s
[INFO] Finished at: 2021-10-12T15:38:22+08:00
[INFO] ------------------------------------------------------------------------
可以看到maven-help-plugin
对应的插件前缀是help
Group Id: org.apache.maven.plugins
Artifact Id: maven-help-plugin
Version: 3.2.0
Goal Prefix: help
可以看到help:describe
用来查看插件的属性和目标
help:describeDescription: Displays a list of the attributes for a Maven Plugin and/orgoals (aka Mojo - Maven plain Old Java Object).
- 可以看到help命令自带的帮助:
mvn help:help
- 输出的结果基本和上面的相同
- 这里更推荐使用help:describe命令
查看详细信息
通过在命令后追加-Ddetail
参数,可以查看插件的详细信息:
简略信息:
mvn help:describe -Dplugin=help
详细信息:
mvn help:describe -Dplugin=help -Ddetail
详细信息输出如下,这是可以看到每个goal
的配置参数说明
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-help-plugin:3.2.0:describe (default-cli) @ standalone-pom ---
[INFO] org.apache.maven.plugins:maven-help-plugin:3.2.0Name: Apache Maven Help Plugin
Description: The Maven Help plugin provides goals aimed at helping to makesense out of the build environment. It includes the ability to view theeffective POM and settings files, after inheritance and active profiles havebeen applied, as well as a describe a particular plugin goal to give usageinformation.
Group Id: org.apache.maven.plugins
Artifact Id: maven-help-plugin
Version: 3.2.0
Goal Prefix: helpThis plugin has 8 goals:help:active-profilesDescription: Displays a list of the profiles which are currently active forthis build.Implementation: org.apache.maven.plugins.help.ActiveProfilesMojoLanguage: javaAvailable parameters:outputUser property: outputOptional parameter to write the output of this help in a given file,instead of writing to the console.Note: Could be a relative path.help:all-profilesDescription: Displays a list of available profiles under the currentproject.Note: it will list all profiles for a project. If a profile comes up with astatus inactive then there might be a need to set profile activationswitches/property.Implementation: org.apache.maven.plugins.help.AllProfilesMojoLanguage: javaAvailable parameters:outputUser property: outputOptional parameter to write the output of this help in a given file,instead of writing to the console.Note: Could be a relative path.help:describeDescription: Displays a list of the attributes for a Maven Plugin and/orgoals (aka Mojo - Maven plain Old Java Object).Implementation: org.apache.maven.plugins.help.DescribeMojoLanguage: javaAvailable parameters:artifactIdUser property: artifactIdThe Maven Plugin artifactId to describe.Note: Should be used with groupId parameter.cmdUser property: cmdA Maven command like a single goal or a single phase following the Mavencommand line:mvn [options] [<goal(s)>] [<phase(s)>]detail (Default: false)User property: detailThis flag specifies that a detailed (verbose) list of goal (Mojo)information should be given.goalUser property: goalThe goal name of a Mojo to describe within the specified Maven Plugin. Ifthis parameter is specified, only the corresponding goal (Mojo) will bedescribed, rather than the whole Plugin.groupIdUser property: groupIdThe Maven Plugin groupId to describe.Note: Should be used with artifactId parameter.minimal (Default: false)User property: minimalThis flag specifies that a minimal list of goal (Mojo) information shouldbe given.outputUser property: outputOptional parameter to write the output of this help in a given file,instead of writing to the console.Note: Could be a relative path.pluginAlias: prefixUser property: pluginThe Maven Plugin to describe. This must be specified in one of threeways:1. plugin-prefix, i.e. 'help'2. groupId:artifactId, i.e. 'org.apache.maven.plugins:maven-help-plugin'3. groupId:artifactId:version, i.e.'org.apache.maven.plugins:maven-help-plugin:2.0'versionUser property: versionThe Maven Plugin version to describe.Note: Should be used with groupId/artifactId parameters.help:effective-pomDescription: Displays the effective POM as an XML for this build, with theactive profiles factored in, or a specified artifact. If verbose, a commentis added to each XML element describing the origin of the line.Implementation: org.apache.maven.plugins.help.EffectivePomMojoLanguage: javaAvailable parameters:artifactUser property: artifactThe artifact for which to display the effective POM.Note: Should respect the Maven format, i.e. groupId:artifactId[:version].The latest version of the artifact will be used when no version isspecified.outputUser property: outputOptional parameter to write the output of this help in a given file,instead of writing to the console.Note: Could be a relative path.verbose (Default: false)User property: verboseOutput POM input location as comments.help:effective-settingsDescription: Displays the calculated settings as XML for this project,given any profile enhancement and the inheritance of the global settingsinto the user-level settings.Implementation: org.apache.maven.plugins.help.EffectiveSettingsMojoLanguage: javaAvailable parameters:outputUser property: outputOptional parameter to write the output of this help in a given file,instead of writing to the console.Note: Could be a relative path.showPasswords (Default: false)User property: showPasswordsFor security reasons, all passwords are hidden by default. Set this totrue to show all passwords.help:evaluateDescription: Evaluates Maven expressions given by the user in aninteractive mode.Implementation: org.apache.maven.plugins.help.EvaluateMojoLanguage: javaAvailable parameters:artifactUser property: artifactAn artifact for evaluating Maven expressions.Note: Should respect the Maven format, i.e. groupId:artifactId[:version].The latest version of the artifact will be used when no version isspecified.expressionUser property: expressionAn expression to evaluate instead of prompting. Note that this must notinclude the surrounding ${...}.forceStdout (Default: false)User property: forceStdoutThis options gives the option to output information in cases where theoutput has been suppressed by using -q (quiet option) in Maven. This isuseful if you like to use maven-help-plugin:evaluate in a script call(for example in bash) like this:RESULT=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)echo $RESULTThis will only printout the information which has been requested byexpression to stdout.outputUser property: outputOptional parameter to write the output of this help in a given file,instead of writing to the console. This parameter will be ignored if noexpression is specified.Note: Could be a relative path.help:helpDescription: Display help information on maven-help-plugin.Call mvn help:help -Ddetail=true -Dgoal=<goal-name> to display parameterdetails.Implementation: org.apache.maven.plugins.help.HelpMojoLanguage: javaAvailable parameters:detail (Default: false)User property: detailIf true, display all settable properties for each goal.goalUser property: goalThe name of the goal for which to show help. If unspecified, all goalswill be displayed.indentSize (Default: 2)User property: indentSizeThe number of spaces per indentation level, should be positive.lineLength (Default: 80)User property: lineLengthThe maximum length of a display line, should be positive.help:systemDescription: Displays a list of the platform details like system propertiesand environment variables.Implementation: org.apache.maven.plugins.help.SystemMojoLanguage: javaAvailable parameters:outputUser property: outputOptional parameter to write the output of this help in a given file,instead of writing to the console.Note: Could be a relative path.[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.904 s
[INFO] Finished at: 2021-10-12T15:53:53+08:00
[INFO] ------------------------------------------------------------------------
查看指定目标
可以通过-Dgoal
参数,查看指定目标的详细信息:
简略信息:
mvn help:describe -Dplugin=help -Dgoal=describe
详细信息:
mvn help:describe -Dplugin=help -Dgoal=describe -Ddetail
简略信息输出如下
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-help-plugin:3.2.0:describe (default-cli) @ standalone-pom ---
[INFO] Mojo: 'help:describe'
help:describeDescription: Displays a list of the attributes for a Maven Plugin and/orgoals (aka Mojo - Maven plain Old Java Object).For more information, run 'mvn help:describe [...] -Ddetail'[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.031 s
[INFO] Finished at: 2021-10-12T15:56:50+08:00
[INFO] ------------------------------------------------------------------------
详细信息输出如下
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-help-plugin:3.2.0:describe (default-cli) @ standalone-pom ---
[INFO] Mojo: 'help:describe'
help:describeDescription: Displays a list of the attributes for a Maven Plugin and/orgoals (aka Mojo - Maven plain Old Java Object).Implementation: org.apache.maven.plugins.help.DescribeMojoLanguage: javaAvailable parameters:artifactIdUser property: artifactIdThe Maven Plugin artifactId to describe.Note: Should be used with groupId parameter.cmdUser property: cmdA Maven command like a single goal or a single phase following the Mavencommand line:mvn [options] [<goal(s)>] [<phase(s)>]detail (Default: false)User property: detailThis flag specifies that a detailed (verbose) list of goal (Mojo)information should be given.goalUser property: goalThe goal name of a Mojo to describe within the specified Maven Plugin. Ifthis parameter is specified, only the corresponding goal (Mojo) will bedescribed, rather than the whole Plugin.groupIdUser property: groupIdThe Maven Plugin groupId to describe.Note: Should be used with artifactId parameter.minimal (Default: false)User property: minimalThis flag specifies that a minimal list of goal (Mojo) information shouldbe given.outputUser property: outputOptional parameter to write the output of this help in a given file,instead of writing to the console.Note: Could be a relative path.pluginAlias: prefixUser property: pluginThe Maven Plugin to describe. This must be specified in one of threeways:1. plugin-prefix, i.e. 'help'2. groupId:artifactId, i.e. 'org.apache.maven.plugins:maven-help-plugin'3. groupId:artifactId:version, i.e.'org.apache.maven.plugins:maven-help-plugin:2.0'versionUser property: versionThe Maven Plugin version to describe.Note: Should be used with groupId/artifactId parameters.[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.162 s
[INFO] Finished at: 2021-10-12T15:57:13+08:00
[INFO] ------------------------------------------------------------------------
其他命令
该帮助插件还有很多有用的goal
,下面仅列出几个常用的,更多的请自行尝试。
- 查看当前
pom.xml
具体生效的结果,并且输出到文件:mvn help:effective-pom -Doutput=EffectivePom.xml
- 查看
pom
中生效的profile
:mvn help:active-profiles -N
- 查看系统所有环境变量:
mvn help:system