我刚刚在一个新的 ubuntu 系统上安装了 maven,其中包括 maven-compiler-plugin。我有一个以前构建良好的 java 项目,默认为 javac 源和目标 5 (jdk 1.5)。但是现在项目正在尝试在新系统上使用jdk1.3编译。有没有一种简单的方法来配置系统以使用 >=jdk5 ?
以下是系统的一些配置细节:
$ java -version
java version "1.6.0_45"
$ dpkg -s maven
Package: maven
Status: install ok installed
Priority: optional
Section: java
Installed-Size: 1489
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Version: 3.0.4-2
$ dpkg -s libmaven-compiler-plugin-java
Package: libmaven-compiler-plugin-java
Status: install ok installed
Priority: optional
Section: java
Installed-Size: 75
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Source: maven-compiler-plugin
Version: 2.0.2-6
检查了maven-compiler-plugin-2.0.2.pom文件,plexus-compiler-javac.originalVersion等设置为1.5.3。
我知道我可以通过在插件上下文中包含源/目标标记来在每个项目的基础上设置它,但我想将 maven-compiler 配置为默认为 jdk5 或更高版本,而不必跨大量的项目。
我该怎么做?
最佳答案
在您的 pom 中指定以下内容以将编译器设置为 JDK5:
<properties>
<maven.compiler.source>1.5</maven.compiler.source>
<maven.compiler.target>1.5</maven.compiler.target>
</properties>
即
<project>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
...
</project>
我在依赖项之前指定了我的,尽管只要它是项目元素的一部分,你就应该能够将它放在 pom 中的任何位置。
我之前遇到过与 Maven 类似的问题,这为我解决了。本质上,它所做的是将 -source
和 -target
标志设置为指定的值并将其传递给编译器。较新的插件默认为 1.5。
为了使用默认方法而不指定属性,您需要运行更高版本的 Maven。
我想您也可以通过您的 IDE 设置一个模板,以将其包含在所有新的 pom 文件中。当然,实际的实现取决于您的 IDE...
参见 The apache maven compiler plugin documentation以及Setting the source and compiler examples更多细节。
关于java - 为 maven-compiler-plugin 设置默认的 jdk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19571165/