2014-09-24 82 views
2

我的父POM exlicitly聲明在兩個儘管顯式插件和插件管理版本Maven爲什麼使用錯誤的插件?

<pluginManagement> 
    <plugins> 
    <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.9.1</version> 
    </plugin> 
     ... 

上行家-Javadoc的插件2.9.1依存性
<reporting> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-javadoc-plugin</artifactId> 
     <version>2.9.1</version> 
     ... 

(見Maven plugin version in pom (seemingly) ignored)和mvn help:effective-pom示出了正在使用2.9.1 。然而,該構建是使用2.10這是原因建立失敗(參見 maven-javadoc-plugin breaks mvn release:performhttp://jira.codehaus.org/browse/MJAVADOC-407

mvn help:describe -DgroupId=org.apache.maven.plugins \ 
        -DartifactId=maven-javadoc-plugin 

顯示

Name: Apache Maven Javadoc Plugin 
    Description: The Apache Maven Javadoc Plugin is a plugin that uses the 
     javadoc tool for generating javadocs for the specified project. 
    Group Id: org.apache.maven.plugins 
    Artifact Id: maven-javadoc-plugin 
    Version: 2.10 
    Goal Prefix: javadoc 

同時,

mvn dependency:resolve-plugins 

顯示

[INFO] Plugin Resolved: maven-javadoc-plugin-2.9.1.jar 

但是當我運行構建時,mvn使用2.10來代替,導致構建失敗。

如何強制Maven的使用2.9.1,而不是破2.10?

(我使用Maven 3.2.1)

+0

你檢查過全依賴關係樹,看一些其他的依賴也被導入的javadoc插件? – 2014-09-24 19:07:13

+0

我該怎麼做?我跑MVN依賴:解決-插件,並通過刪除我的〜/ .m2目錄/庫/組織/阿帕奇/行家/插件/ Maven的Javadoc的插件報告2.9.1 – djb 2014-09-24 19:28:02

+0

我「固定」的問題。我不是在寫這個作爲問題的答案;我仍然希望看到更好的Maven依賴關係:顯示依賴關係鏈的工具(即,與pom.xml相反,哪個插件'強制使用2.10「)。希望我採取的診斷步驟和解決方法可以幫助其他人。 – djb 2014-09-24 21:14:17

回答

2

要確保你正在尋找正確的依賴。我們已經看到2.9.1正在被用於網站報告,但2.10正在被構建中使用。我相信你應該在你的

<build><plugins>

部分指定它。

我們只是證實了我們遭受了同樣的問題。我們在報告插件部分有插件版本,但沒有構建插件。一旦我們將其添加到構建插件部分,問題就解決了。它需要在構建插件中的原因是因爲它正在準備部署階段用來構建一個javadoc jar。這與爲站點報告生成javadoc分開發生。

+0

我也試過了,mvn help:描述還是顯示版本:2.10 - 奇怪!但正如將它添加到pluginManagement一樣,構建成功,-X顯示maven-javadoc-plugin:2.9.1:javadoc(一旦我的回購被清除)。我想所有在一起,這是足夠的答案 – djb 2014-09-25 16:34:57