2011-10-08 49 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的工作有了更好的理解。就像你说的那样,只需保留元数据并使用指定的插件即可。 –