2014-11-06 92 views
1

我是Maven的新手,如果這是一個非常基本的問題,那麼請讓我免費。父POM.xml所在的位置

我正在使用maven的項目,當我通過我的項目的網站命令我得到錯誤。

[ERROR] Failed to execute goal 
    org.apache.maven.plugins:maven-site-plugin:3.1:site (default-site) 
    on project mobileads: Execution default-site of goal 
    org.apache.maven.plugins:maven-site-plugin:3.1:site 
    failed: A required class was missing while executing 
    org.apache.maven.plugins:maven-site-plugin:3.1:site: 
    org/sonatype/aether/graph/DependencyFilter 

我知道maven-site-plugin:3.1版本存在問題。

如果我明確包含maven-site-plugin(3.4)的最新版本,這個問題就會消失。但是我的問題是它在哪裏拾取maven-site-plugin:3.1,正如我的項目中的pom.xml我看不到這個插件,它從某處選擇一些默認設置。

我想知道該文件的名稱和該文件在駐留位置,以便我可以看到所有settings.I使用MAC。

在此先感謝。

拉傑什

+0

可能的重複[Where is super pom for maven 3?](http://stackoverflow.com/questions/6797209/where-is-super-pom-for-maven-3) – Joe 2014-11-11 11:54:38

回答

2

這裏面Maven的分佈罐之一,即在$MAVEN_HOME/lib/maven-core-X.X.X.jar。裏面有META-INF/plexus/components.xml文件。原因如下:

曾幾何時(在Maven 2中)直到隱式指定,插件始終使用最新版本。這個決定基於兩個假設:插件總是越來越好,所以你想獲得最新的插件,而且,由於插件罐不是你的產品的一部分(甚至不是它的生產類路徑),它可以有時會中斷。

後來他們意識到這是一個非常糟糕的主意,因爲它使你的構建不可重現。因此,通過將插件的版本確定到Maven發行日期之前可用的插件的最新發行版來修復它。

所以,最好的做法是創建一個包含<pluginManagement>部分的父級pom.xml,並確定所有正在使用的插件的版本。

+0

感謝您的回覆JBaruch。 ...所以你的意思是說,這是maven文件將引用它所需的所有插件,如果它沒有在我的項目pom.xml中找到?這意味着如果我正在使用最新的Maven(我正在使用Maven 3.2.3),這些插件只能由Maven團隊處理。還有一件事我想知道,我如何查看這個特定的文件,因爲它是jar文件的一部分 – Learner 2014-11-06 08:12:55

+0

已添加到答案。 – JBaruch 2014-11-06 08:22:45