我是Maven的新手,我试图抓住它。我已经阅读了初学者的教程,并且能够理解基本的东西,但是我的项目中有一个复杂的pom.xml文件,我的下一个目标是理解它。pom.xml中的日志语句或Maven的跟踪流程
由于从初学者指南获得的知识有限,我不可能理解复杂的pom.xml,所以我想在pom.xml中添加某种日志语句或寻找替代方法,通过它我可以跟踪pom.xml中的执行流程,因为这会帮助我了解事情的进展。
我是Maven的新手,我试图抓住它。我已经阅读了初学者的教程,并且能够理解基本的东西,但是我的项目中有一个复杂的pom.xml文件,我的下一个目标是理解它。pom.xml中的日志语句或Maven的跟踪流程
由于从初学者指南获得的知识有限,我不可能理解复杂的pom.xml,所以我想在pom.xml中添加某种日志语句或寻找替代方法,通过它我可以跟踪pom.xml中的执行流程,因为这会帮助我了解事情的进展。
可以通过发出
mvn -X install
这会给你的执行流程开始。
根据mvn --help
:
-X,--debug Produce execution debug output
的选择,如果你想看到所有的依赖性,性能,插件,目录等试试这个:
mvn help:effective-pom
我相信, maven中调试选项生成的输出可能非常庞大且耗时。我只用它来进行一些特定的问题分析。
对我来说,它总是通过阅读并试图理解特定部分作者的意图(我认为pom.xml元素的良好参考可以在http://maven.apache.org/pom.html上找到)来处理复杂的pom.xml文件。
一旦运行后生成,你可以看到什么,以及它执行,你可以找到你们之间之前所学到的知识,以及它如何真正的作品:)
你可以打印输出一些日志信息到Maven映射时使用maven-antrun-plugin控制台,您还可以指定phase要打印的信息,请参阅下面的代码(它去插件部分)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>print-log</id>
<phase>initialize</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<echo message="Your log message for project ${project.artifactId}" />
</target>
</configuration>
</execution>
</executions>
</plugin>
我可以在任何地方添加这个日志语句,在我的pom中或只在ant运行插件作用域中。 –
不,你不能在任何地方添加 - 这不完全是Maven的工作原理。 Maven使用插件来丰富其核心功能和附加功能。它发生的情况是,如果你告诉它,antrun插件能够打印日志语句。每个插件都有其目的(目标),打印日志很少是其中之一。然而,Maven会记录其所有活动 - 您可以按照阅读标准日志的操作顺序进行操作,如果您需要一些额外的调试信息(如此处所述),请使用-X或 - debug标志。我可以知道你想记录什么样的信息吗? –
我会推荐阅读更多关于Maven build lifecycle。 Maven是而不是一个脚本式构建自动化工具(如ant或make)。这是一种不同的方法。日志应该不如在./target
目录中产生的输出工件重要。
+1,-X仅在调试时有用。 – gontard