我是 Maven 新手,已经学习 Maven 一个星期了,有 5 年使用 Ant 的经验,所以我可以毫无困难地跟上进度。我已经阅读了 maven.apache.org 上的所有文档两次——阅读了数百页。我已经使用几种不同的 Maven 原型创建了几个测试应用程序,以便在阅读文档时更好地理解。现在,我正在设置我的新项目,并且更精细的点正在发挥作用......
我想我知道为什么 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 可能存在问题,不知道它需要更新存储库中的文件,我运行 mvn versions:use-latest-releases 我注意到 jar 文件已下载到 ~/.m2/repository/org/apache/ maven/plugins/maven-compiler-plugin/ 即
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-compiler-plugin 版本仍然是 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 存储库添加到项目中,我的下一个想法是 RichFaces 中可能有一些东西阻止了项目使用最新的编译器,我看了一下
~/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/maven-metadata-jboss-public-repository-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-compiler-plugin 版本 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 中央存储库而不是 JBoss 存储库?