2011-10-08 35 views
2

我是Maven的新手,現在已經學習Maven一週了,有5年使用Ant的經驗,所以我可以無憂無慮地趕上速度。我已閱讀maven.apache.org上的所有文檔兩次 - 幾百頁的閱讀。我已經通過文檔閱讀了幾個不同的Maven原型創建了幾個測試應用程序,以加深我的理解。現在,我正在設置我的新項目,並且更精細的點正在發揮作用...maven-compiler-plugin不會從2.0.2.SP1升級到2.3.2

我想我知道爲什麼maven-compiler-plugin不會升級到最新版本2.3.2我跑

mvn versions:use-latest-release 

但我需要知道是否有解決方法,或者如果我甚至應該擔心。首先,這裏是我的pom.xml文件的一部分:

 <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.5</source> 
       <target>1.5</target> 
      </configuration> 
     </plugin> 

正如你所看到的,我指定了版本2.3.2。考慮到Maven可能存在一個問題,因爲Maven不知道需要更新其在存儲庫中的文件,所以我運行了mvn版本:use-latest-releases我注意到jar文件被下載到〜/ .m2/repository/org/apache /行家/插件/ Maven的編譯器插件/即

ll ~/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/2.3.2 
total 60 
-rw-rw-r--. 1 pgarner pgarner 29176 Oct 7 21:29 maven-compiler-plugin-2.3.2.jar 
-rw-rw-r--. 1 pgarner pgarner 335 Oct 7 21:29 maven-compiler-plugin-2.3.2.jar.lastUpdated 
-rw-rw-r--. 1 pgarner pgarner 40 Oct 7 21:29 maven-compiler-plugin-2.3.2.jar.sha1 
-rw-rw-r--. 1 pgarner pgarner 7329 Oct 7 21:29 maven-compiler-plugin-2.3.2.pom 
-rw-rw-r--. 1 pgarner pgarner 335 Oct 7 21:29 maven-compiler-plugin-2.3.2.pom.lastUpdated 
-rw-rw-r--. 1 pgarner pgarner 40 Oct 7 21:29 maven-compiler-plugin-2.3.2.pom.sha1 
-rw-rw-r--. 1 pgarner pgarner 208 Oct 7 21:29 _maven.repositories 

但是當我跑下很明顯,maven的編譯器插件版本仍然是2.0.2.SP1:

mvn help:describe -Dplugin=org.apache.maven.plugins:maven-compiler-plugin 
/usr/java/jdk1.7.0 
[INFO] Scanning for projects... 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building RichFaces 4 Application 1.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-help-plugin:2.1.1:describe (default-cli) @ Patrac --- 
[INFO] org.apache.maven.plugins:maven-compiler-plugin:2.0.2.SP1 
Name: Maven Compiler Plugin 
Description: Maven Plugins 
Group Id: org.apache.maven.plugins 
Artifact Id: maven-compiler-plugin 
Version: 2.0.2.SP1 
Goal Prefix: compiler 

注意到我確實使用了richfaces-archetype-simpleapp原型來生成這個項目,並且我被要求將JBoss倉庫添加到項目中,我的下一個想法是可能有b在RichFaces中有些東西阻止項目使用最新的編譯器,我看了一下

〜/ .m2/repository/org/apache/maven/plugins/maven-compiler-plugin/maven-metadata-jboss-公共庫,group.xml

果然有,我想,我發現這個問題:

<latest>2.4-SNAPSHOT</latest> 
<release>2.0.2.SP1</release> 
<versions> 
    <version>0.1-stub-SNAPSHOT</version> 
    <version>2.0.2.SP1</version> 
    <version>2.3.2-SNAPSHOT</version> 
    <version>2.4-SNAPSHOT</version> 
</versions> 

那麼,這是否意味着RichFaces的不能與Maven的編譯器插件2.3版本使用。 2?

我想使用最新版本的maven-compiler-plugin開始使用這個新項目。我想遠離使用快照並堅持發佈。我的直覺告訴我,將2.3.2版的條目添加到上述XML文件(即2.3.2)是完全危險的。我對麼?或者這僅僅是一個JBoss-Maven倉庫的問題,沒有一套完整的maven-compiler-plugin的所有版本?

我有什麼選擇?我應該對使用v.2.0.2.SP1感到滿意嗎?或者有什麼方法可以讓Maven忽略maven-metadata-jboss-public-repository-group.xml,或者讓Maven優先考慮Maven Central倉庫而不是JBoss倉庫?

回答

1

你已經有了相當多的在這裏,所以我會盡量把它拆開,並回答是盡我所能...

我想我知道爲什麼Maven的編譯器插件韓元「T升級到 最新版本2.3.2,當我運行

根據您的片段低於,它看起來像它工作得很好。我剛剛檢查了編譯插件頁面,2.3.2實際上是最新版本。

當你運行這個:mvn help:describe -Dplugin=org.apache.maven.plugins:maven-compiler-plugin /usr/java/jdk1.7.0我猜這是一個默認值。如果您在上述項目中運行mvn compile,則應按照您的指定使用2.3.2。

我的直覺告訴我,這將是完全危險增加一個 條目2.3.2版本以上的XML文件,即2.3.2。我的 是否正確?

單獨保留元數據文件,除非你正在尋找的麻煩或真正知道你在做什麼:)

我有哪些選擇?我是否應該滿足於使用v。 2.0.2.SP1?或者有沒有辦法讓Maven忽略maven-metadata-jboss-public-repository-group.xml,或者讓Maven 優先於Maven Central存儲庫而不是JBoss 存儲庫?

我不認爲插件的2.0.2.SP1正在使用。即使它是\,使用插件的快照是不是太大的一筆交易IMO。使用依賴關係的快照肯定需要謹慎。

我確定有很多方法可以覆蓋哪個存儲庫可以解決什麼問題,以什麼順序解決問題,但我不知道在這種情況下它會對您有多大幫助。

我希望這會有所幫助。

+0

當我跑 'MVN幫助:描述-Dplugin = org.apache.maven.plugins:行家編譯-plugin' 終端輸出顯示,被正在使用的插件2.0.2.SP1。 我認爲什麼是強迫版本2.0.2.SP1是元數據本身,指定「 2.0.2.SP1」,即使有後來的版本,例如。 ' 2.3.2-SNAPSHOT'(參見上面的原始文章)。 我想我現在對Maven的工作有了更好的理解。就像你說的那樣,只需保留元數據並使用指定的插件即可。 –

相關問題