2012-08-22 42 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目錄中產生的輸出工件重要。