java - 为 maven-compiler-plugin 设置默认的 jdk

标签 java maven

我刚刚在一个新的 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/

相关文章:

java - 单击菜单中的项目后如何显示文本框。安卓

java - 如何用java编写Kafka Consumer Client来消费来自多个broker的消息?

java - 如何在 Maven surefire 中查看逐个测试标准输出/标准错误

java - Maven 构建不包括 hibernate cfg.xml 或 hbm.xml 文件

java - 如何在特定条件下停止 Gradle 或 Maven 构建

java - jScrollPane 无法添加组件

java - 为什么 onSubscribe 在 rxjava 中不起作用?

java - 私钥和公钥

java - Maven 构建失败 : "Unable to locate the Javac Compiler in: jre or jdk issue"

java - 在 Jboss Wildfly 上部署 EAR 文件时失败