Maven编译项目设置jdk版本

1,385 阅读2分钟
  • 问题

maven打包编译时自动切换jdk5。

idea打开新的项目,通过maven对其打包的时候,提示是jdk5环境!

本能的想到新项目是否 子模块未指定jdk版本。于是进行了如下图操作。

操作1.png

操作2.png

以前遇到过类似的事情,idea打开新项目有时候会默认使用自带的jdk11.这是只需要在这里修改一下就会好了。

但今天没有生效,于是考虑是否是因为更换了maven的setting文件导致的。因为这个项目比较独立,setting文件只添加了aliyun仓库代理。

这里我切换回原来的公司项目用的setting文件,配置的东西比较多。再次启动正常了。

这时对比两个setting文件,排除仓库、映射等配置,还剩下一个环境配置可能会影响。

	<profile>
		<id>jdk-1.8</id>
		<activation>
			<activeByDefault>true</activeByDefault>
			<jdk>1.8</jdk>
		</activation>
		<properties>
			<maven.compiler.source>1.8</maven.compiler.source>
			<maven.compiler.target>1.8</maven.compiler.target>
			<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
		</properties>
	</profile>

使用过spring多环境配置的小伙伴比较熟悉,一般情况下会在pom文件中配置多个环境,比如:开发、测试、预发布、发布等。或者配置多个pom文件,在打包的时候控制打入的pom文件。这个就不多说了。

这个配置也可以在pom文件中添加,添加后会在idea的maven管理窗口新增一个环境。

操作3.png

加入配置,测试后,是可以的。

但个人很不喜欢这样,如果在setting中配置,意味着对所有使用同一个配置文件的项目都有效,非常难看。强迫症的噩梦。

因此本人更推荐一下几种:

方式1: 在当前maven项目pom文件中指定编译的jdk版本。

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

方式2: 使用 maven-compiler-plugin 插件指定当前项目编译的jdk版本

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

方式3:针对springboot项目。只要指定java版本即可。如果使用springboot官方的初始化项目工具,那么会默认添加这个配置,所以以前很少遇到这个问题。

<properties>
	<java.version>1.8</java.version>
</properties>