我是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