Maven设置JDK版本的两种方法实现

 更新时间:2024年07月03日 10:11:07   作者:Undefined443  
本文主要介绍了Maven设置JDK版本的两种方法实现,是通过Apache Maven Compiler Plugin插件实现的,具有一定的参考价值,感兴趣的可以了解一下

Maven 设置 JDK 版本是通过 Apache Maven Compiler Plugin 插件实现的。它用于编译项目的源代码。

方法一

有时候你可能需要将某个项目编译到与当前使用的 JDK 版本不同的语言版本。你可以在编译时为 javac 工具添加 -source 和 -target 选项来实现这样的功能。也可以配置 Apache Maven Complier Plugin 插件以在编译过程中提供这两个选项。

例如,如果你想要使用 Java 8 的语言特性(-source 1.8)并且还希望编译后的类与 JVM 1.8 兼容(-target 1.8),你可以在 pom.xml 文件中添加下面两个属性,这是插件参数的默认属性名称:

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

或者直接配置插件(效果同上):

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

如果你没有配置 source 和 target 属性,默认值是 1.8

source 选项指定了你的源代码中能够使用什么版本的语言特性,target 选项指定了编译出来的 class 文件能够在什么版本的 JVM 上运行。一般来说这两个值设置成一样即可。

Setting the -source and -target of the Java Compiler | Apache Maven

方法二(推荐)

从 JDK 9 开始, javac 工具可以接受 --release 选项,用于指定要针对哪个 Java SE 版本构建项目。例如,你安装了 JDK 11 并且被 Maven 使用,但你想要针对 Java 8 构建项目。--release 选项确保代码编译遵循指定版本的语言规则,并且生成的类也针对该版本以及该版本的公共 API。这意味着,与 -source 和 -target 选项不同,编译器将在你使用在先前 Java SE 版本中不存在的 API 时检测并生成错误。

自 Apache Maven Complier Plugin 插件的 3.6 版本起,可以通过设置 <maven.compiler.release> 属性提供此选项:

<project>
	...
	<properties>
		<maven.compiler.release>8</maven.compiler.release>
	</properties>
	...
</project>

或者直接配置插件(效果同上):

<project>
	...
	<build>
		...
		<plugins>
			...
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.12.1</version>
				<configuration>
					<release>8</release>
				</configuration>
			</plugin>
			...
		</plugins>
		...
	</build>
	...
</project>

Setting the --release of the Java Compiler | Apache Maven

到此这篇关于Maven设置JDK版本的两种方法实现的文章就介绍到这了,更多相关Maven设置JDK版本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何基于Springboot完成新增员工功能并设置全局异常处理器

    如何基于Springboot完成新增员工功能并设置全局异常处理器

    最近工作中遇到了做一个管理员工信息的功能,下面这篇文章主要给大家介绍了关于如何基于Springboot完成新增员工功能并设置全局异常处理器的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 使用SpringBoot简单实现一个苹果支付的场景

    使用SpringBoot简单实现一个苹果支付的场景

    这篇文章主要为大家详细介绍了如何在Spring Boot项目中集成Apple Pay功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11
  • java中volatile关键字的作用详解

    java中volatile关键字的作用详解

    这篇文章主要介绍了java中volatile关键字的作用详解,volatile可以保证,若一个线程改变了某块内存的值,其他线程是可见的,以至于其他线程能及时更新这块内存,需要的朋友可以参考下
    2023-09-09
  • Springcloud hystrix服务熔断和dashboard如何实现

    Springcloud hystrix服务熔断和dashboard如何实现

    这篇文章主要介绍了Springcloud hystrix服务熔断和dashboard如何实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • java反射_改变private中的变量及方法的简单实例

    java反射_改变private中的变量及方法的简单实例

    下面小编就为大家带来一篇java反射_改变private中的变量及方法的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • springboot整合Dubbo与Feign的实现 (无注册中心)

    springboot整合Dubbo与Feign的实现 (无注册中心)

    本文主要介绍了springboot整合Dubbo与Feign的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Java小项目之迷宫游戏的实现方法

    Java小项目之迷宫游戏的实现方法

    这篇文章主要给大家介绍了关于Java小项目之迷宫的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • nacos配置中心持久化相关配置方式

    nacos配置中心持久化相关配置方式

    这篇文章主要介绍了nacos配置中心持久化相关配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Spring Boot Web 开发注解篇

    Spring Boot Web 开发注解篇

    在 Spring Boot 快速入门中,只要在 pom.xml 加入了 spring-boot-starter-web 依赖,即可快速开发 web 应用。下文给大家详细介绍了spring boot web 开发注解,感兴趣的朋友参考下吧
    2017-08-08
  • Java经典快排思想以及快排的改进讲解

    Java经典快排思想以及快排的改进讲解

    今天小编就为大家分享一篇关于Java经典快排思想以及快排的改进讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01

最新评论