【发布时间】:2012-08-22 07:20:31
【问题描述】:
我是 Maven 新手,我正在努力掌握它。我已经阅读了初学者的教程并且能够理解基本的东西,但是我的项目中有一个复杂的 pom.xml 文件,我的下一个目标是理解它。
由于从初学者指南中获得的知识有限,我无法理解复杂的 pom.xml,因此我正在考虑在 pom.xml 中添加某种日志语句或寻找可以跟踪的替代方法pom.xml 中的执行流程,因为这将帮助我了解事情的进展情况。
【问题讨论】:
我是 Maven 新手,我正在努力掌握它。我已经阅读了初学者的教程并且能够理解基本的东西,但是我的项目中有一个复杂的 pom.xml 文件,我的下一个目标是理解它。
由于从初学者指南中获得的知识有限,我无法理解复杂的 pom.xml,因此我正在考虑在 pom.xml 中添加某种日志语句或寻找可以跟踪的替代方法pom.xml 中的执行流程,因为这将帮助我了解事情的进展情况。
【问题讨论】:
我相信 maven 中的调试选项生成的输出可能非常庞大且读取时间很长。我只将它用于一些特定的问题分析。
对我来说,通过阅读并尝试理解特定部分作者的意图,它总是可以通过复杂的 pom.xml 文件(我认为可以在以下位置找到 pom.xml 元素的良好参考:http://maven.apache.org/pom.html) .
之后运行构建后,您可以看到它执行了什么以及何时执行,并且您可以找到您之前学习的内容和它的实际工作方式之间的映射:)
【讨论】:
您可以使用maven-antrun-plugin 将一些日志消息打印到 maven 控制台,也可以指定要在其中打印消息的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>
【讨论】:
你可以从发布开始
mvn -X install
这将为您提供执行流程。
根据mvn --help:
-X,--debug Produce execution debug output
如果您想查看所有依赖项、属性、插件、目录等,请尝试以下方法:
mvn help:effective-pom
【讨论】:
我建议阅读更多关于Maven build lifecycle 的信息。 Maven不是类似脚本的构建自动化工具(如ant 或make)。这是一种不同的方法。日志应该不如./target 目录中生成的输出工件重要。
【讨论】: