2012-08-22 38 views
1

我是Maven的新手,我试图抓住它。我已经阅读了初学者的教程,并且能够理解基本的东西,但是我的项目中有一个复杂的pom.xml文件,我的下一个目标是理解它。pom.xml中的日志语句或Maven的跟踪流程

由于从初学者指南获得的知识有限,我不可能理解复杂的pom.xml,所以我想在pom.xml中添加某种日志语句或寻找替代方法,通过它我可以跟踪pom.xml中的执行流程,因为这会帮助我了解事情的进展。

回答

1

可以通过发出

mvn -X install 

这会给你的执行流程开始。

根据mvn --help

-X,--debug  Produce execution debug output 

的选择,如果你想看到所有的依赖性,性能,插件,目录等试试这个:

mvn help:effective-pom 
2

我相信, maven中调试选项生成的输出可能非常庞大且耗时。我只用它来进行一些特定的问题分析。

对我来说,它总是通过阅读并试图理解特定部分作者的意图(我认为pom.xml元素的良好参考可以在http://maven.apache.org/pom.html上找到)来处理复杂的pom.xml文件。

一旦运行后生成,你可以看到什么,以及它执行,你可以找到你们之间之前所学到的知识,以及它如何真正的作品:)

+0

+1,-X仅在调试时有用。 – gontard

2

你可以打印输出一些日志信息到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> 
+0

我可以在任何地方添加这个日志语句,在我的pom中或只在ant运行插件作用域中。 –

+0

不,你不能在任何地方添加 - 这不完全是Maven的工作原理。 Maven使用插件来丰富其核心功能和附加功能。它发生的情况是,如果你告诉它,antrun插件能够打印日志语句。每个插件都有其目的(目标),打印日志很少是其中之一。然而,Maven会记录其所有活动 - 您可以按照阅读标准日志的操作顺序进行操作,如果您需要一些额外的调试信息(如此处所述),请使用-X或 - debug标志。我可以知道你想记录什么样的信息吗? –

1

我会推荐阅读更多关于Maven build lifecycle。 Maven是而不是一个脚本式构建自动化工具(如antmake)。这是一种不同的方法。日志应该不如在./target目录中产生的输出工件重要。