Maven 指定 Java 编译版本

本文介绍了如何在Maven项目中指定Java编译器版本,以适应不同版本的Java(如Java 8及更早版本,或Java 9及以上版本)。主要方法包括设置Maven Java编译器属性和使用Maven Java编译器插件,并提供了相关代码示例。对于Java 9及以上版本,推荐使用`release`属性来设定编译目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Maven使用的默认Java编译器版本是Java 1.5。为了使Maven使用Java编译器的较新版本编译Java代码,需要在项目的POM文件(pom.xml)中显式指定Java编译器。

指定Java编译器版本的确切方式取决于你使用的是Java 8或更早版本,还是Java 9或更高版本。从Java 9开始,Java获得了一些模块,这些模块在短期内会使编译有些复杂,但从长期来看应该会有所帮助。

 

1.适用于Java 8和更早版本的Maven Java编译器

从Java 8和更早版本开始,有两种方法可以在Maven POM文件中设置Java编译器版本:

通过Maven Java编译器属性。

通过Maven Java编译器插件。

以下将说明这两种在Maven中设置Java编译器版本的方法。

 

2.Maven Java编译器属性

第一种,也是最简单的方法是通过Maven Java编译器属性:

<properties>
  <maven.compiler.target>1.8</maven.compiler.target>
  <maven.compiler.source>1.8</maven.compiler.source>
</properties>

 

这些属性必须包含在POM文件的properties元素中。

 

3.Maven Java编译器插件

第二种比较冗长的方法是通过插件:

<build>
  <plugins>

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.6.1</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
      </configuration>
    </plugin>
  </plugins>
</build>

 

4.完整Maven POM文件示例

这是使用上述两种机制设置的Java编译器版本的完整Maven POM文件。请注意,你的POM文件中仅应使用一种机制。该示例仅显示了两个示例,方便看到它们在POM文件中放置的位置。

<project
 xmlns="http://maven.apache.org/POM/4.0.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>

<modelVersion>4.0.0</modelVersion>

<groupId>com.nanosai</groupId>
<artifactId>grid-ops</artifactId>
<version>0.8.0</version>
<packaging>jar</packaging>


<dependencies>

  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
  </dependency>


</dependencies>


<build>
  <plugins>

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.6.1</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
      </configuration>
    </plugin>
  </plugins>
</build>

<properties>
  <project.build.sourceEncoding>
      UTF-8
  </project.build.sourceEncoding>
  <maven.compiler.target>1.8</maven.compiler.target>
  <maven.compiler.source>1.8</maven.compiler.source>
</properties>

</project>

 

5.适用于Java 9及更高版本的Maven Java编译器

对于Java 9和更高版本,使用插件版的一种变体,用release属性来代替source和target属性:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <release>11</release>
    </configuration>
</plugin>

 

本示例在release属性中将Java版本设置为11。Java 11是Java的长期支持(LTS)版本。

还要注意,Maven Java编译器插件的版本已从3.6.1更改为3.8.0。

 

 

原文地址: https://www.zhblog.net/go/java/tutorial/maven-java-compiler-version?t=637

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值