Maven在阶段或目标中执行的实际命令

Maven在阶段或目标中执行的实际命令,maven,Maven,这可能是一个关于Maven内部结构的问题,我没有太多的运气去寻找和找到答案。简而言之,我感兴趣的是看看Maven在每个阶段或目标中实际执行了哪些命令。例如,mvn包创建jar文件,因此我认为它必须在某个时候调用jar-cf命令 Maven是自以为是的,因此根据设计,该命令不会出现在.pom文件中。但是Maven为特定的阶段和目标实际运行哪些命令?有什么方法可以查看它们吗?所有插件都是用Java(或基于JVM的语言)编写的,因此如果您能阅读它,您可以了解它的功能。以下是maven jar插件的示例

这可能是一个关于Maven内部结构的问题,我没有太多的运气去寻找和找到答案。简而言之,我感兴趣的是看看Maven在每个阶段或目标中实际执行了哪些命令。例如,
mvn包
创建jar文件,因此我认为它必须在某个时候调用
jar-cf
命令


Maven是自以为是的,因此根据设计,该命令不会出现在
.pom
文件中。但是Maven为特定的阶段和目标实际运行哪些命令?有什么方法可以查看它们吗?

所有插件都是用Java(或基于JVM的语言)编写的,因此如果您能阅读它,您可以了解它的功能。以下是maven jar插件的示例源代码:

但要实现这一目标,您需要弄清楚在运行阶段时执行哪些插件和目标。有多种方法:

  • 在输出中,Maven说明了它执行的目标,例如:
  • maven资源插件:2.6:resources(默认资源)@module name

  • 如果生成一个有效的POM,您将能够看到所有插件以及它们绑定到哪个阶段:
    mvn帮助:有效的POM
    。有些插件有默认的阶段,所以人们不必明确地指定它们——对于这些阶段,您必须查看插件元信息或源代码
  • 默认插件和目标由打包定义。对于您可以查看的默认包装(角色提示是包装名称)
  • 在您知道执行了哪些插件和目标之后,您可以检查每个插件的源代码(源代码通常是开放的),并查看其mojo以获取实际的源代码

    如果您决定学习代码,那么在运行
    mvn
    命令时能够对其进行调试将非常有用。为此,您可以使用
    mvnDebug
    而不是
    mvn


    更多信息:,。

    创建jar文件的调用在绑定到生命周期的中完成。您可以对幕后发生的事情进行
    mvn-X清理包
    。但是您不会看到很多命令(除了javac编译)。。。您所说的:
    Maven是自以为是的,因此通过设计,该命令不会显示在.pom文件中?
    显示运行哪种阶段显示哪些插件在哪个阶段运行

    如果您想查看插件的来源,可以在此处找到所有插件: 在右侧,您可以看到指向相应版本控制系统的链接及其链接


    每个插件都有一个到源代码的链接,例如maven jar插件:

    使用
    -X
    参数运行
    mvn
    ,然后查找以“[DEBUG]Executing command line:.”开头的行。

    生命周期:和绑定。