2010-08-25 102 views
5

如何鎖定我想使用的Maven插件的版本?如何鎖定maven插件版本

我已經配置像這樣的PMD插件:

<plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-pmd-plugin</artifactId> 
       <version>2.5</version> 
       <configuration> 
        <outputDirectory>target/pmd</outputDirectory> 
        <targetDirectory>target/</targetDirectory> 
        <aggregate>true</aggregate> 
        <targetJdk>1.6</targetJdk> 
        <rulesets> 
         <ruleset>rulesets/basic.xml</ruleset> 
         <ruleset>rulesets/codesize.xml</ruleset> 
         <ruleset>rulesets/coupling.xml</ruleset> 
         <ruleset>rulesets/design.xml</ruleset> 
         <ruleset>rulesets/imports.xml</ruleset> 
         <ruleset>rulesets/logging-java.xml</ruleset> 
         <ruleset>rulesets/optimizations.xml</ruleset> 
         <ruleset>rulesets/strings.xml</ruleset> 
         <ruleset>rulesets/unusedcode.xml</ruleset> 
        </rulesets> 
       </configuration> 
      </plugin> 

昨晚,我的每日構建失敗了,我再也不能運行任何PMD的目標,因爲它試圖找到該插件的2.6版本快照。爲什麼它甚至試圖找到2.6-SNAPSHOT,如果我有2.5版本的標籤?另外,2.6-SNAPSHOT不在中央 - 爲什麼我的maven客戶認爲它存在?

Maven的版本:2.0.9
Java版本:1.6.0_17
OS的名字: 「Linux的」 版本: 「2.6.24-24-通用」 拱 「I386」 家庭: 「UNIX」

編輯:

我升級到maven 2.2.1並觀察到與以前相同的問題。我可以通過從存儲庫中的元數據中刪除2.6-SNAPSHOT來構建項目(.m2/repository/org/apache/maven/plugins/maven-pmd-plugin/maven-metadata-central.xml)。我還將latestVersion標籤設置爲2.5。這顯然不是解決方案,因爲我必須部署自己的插件或更改所有客戶端上的緩存版本。在這種情況下

+1

它看起來像一個Maven bug。 「版本」標籤專門用於修復插件版本,並確保您的版本具有可再現性,即使有新的插件版本也是如此。 – 2010-08-25 14:08:55

+0

您是否嘗試過使用Maven的新版本之一,目前它們在2.2.1上。如果它在那裏修復,那麼它就是maven中的一個bug。 – Goibniu 2010-08-25 14:12:15

+0

升級似乎沒有幫助(請參閱上面的編輯) – Greg 2010-08-25 14:34:29

回答

2

標準程序:刪除相應的插件文件夾在您的本地回購:

.m2/repository/org/apache/maven/plugins/maven-pmd-plugin/ 

這有助於在大多數情況下。

如果沒有,您可能會從存儲庫中獲取錯誤的數據。如果您正在使用連接,請重建索引。

+2

我得到它的工作。問題是來自JBOSS存儲庫的插件元數據。我在代理http://repository.jboss.org/nexus/content/groups/public/這是造成這個問題。我將我的代理更改爲https://repository.jboss.org/nexus/content/repositories/releases/,刪除了我的本地存儲庫,並且能夠構建。 – Greg 2010-08-25 15:23:23