-
问题
maven打包编译时自动切换jdk5。
idea打开新的项目,通过maven对其打包的时候,提示是jdk5环境!
本能的想到新项目是否 子模块未指定jdk版本。于是进行了如下图操作。
以前遇到过类似的事情,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管理窗口新增一个环境。
加入配置,测试后,是可以的。
但个人很不喜欢这样,如果在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>