如何修改maven的默认jdk版本
问题:
1、创建maven项目的时候,jdk版本是1.5版本,而自己安装的是1.8版本。
2、每次右键项目名-maven->update project 时候,项目jdk版本变了,变回1.5版本或者其他版本
平时开发中,新增java maven项目后,默认的jdk版本都是java1.5。
原因:
此处解释转载:
maven 本质上是一个插件框架,它的核心并不执行具体的构建任务,所有的这些任务全都交给插件来完成。
例如编译源代码是由maven-compiler-plugin来完成的。此插件用来编译位于src/main/java目录下的主源码,
testCompile目标用来编译位于src/test/java/目录下的测试源码。
由于历史原因,Maven的核心插件之一,maven3 compiler插件默认值支持Java1.5,因此我们需要配置该插件支持适合自己项目的版本。
java1.5 版本较低,有很多java1.5之后新特性会报语法错误,如@Override就编译不通过。
解决办法:
解决办法一:
在项目中的pom.xml指定jdk版本,如下:
在节点下新增:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source> <!-- 源代码使用的开发版本 -->
<target>1.8</target> <!-- 需要生成的目标class文件的编译版本 -->
<!-- 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中需要没有使用低版本jdk中不支持的语法),会存在target不同于source的情况 -->
</configuration>
</plugin>
</plugins>
</build>
缺点:
这个方法只能保证该项目是jdk1.8版本,每次新建项目都得加上面代码,不推荐使用,
推荐第二种方法。
解决方法二:
此种方法对所有maven项目都有效
在maven的安装目录找到settings.xml文件,在里面添加如下代码
<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>
compiler-plugin主要注意问题:
(1):maven 2.1默认用jdk 1.3来编译,maven 3 貌似是用jdk 1.5,如果项目用的jdk 1.6也会有问题,compiler插件可以指定JDK版本为1.6。
(2):windows默认使用GBK编码,java项目经常编码为utf8,也需要在compiler插件中指出,否则中文乱码可能会出现编译错误。
添加完后,在对eclipse进行设置。
window->preferences->maven->user settings,user settings
那里选择maven安装目录下的settings.xml文件。如下图
例:安装目录 C:\apache-maven-3.5.4\conf
此处我电脑是苏菲5 只有一个盘 不建议Maven装在C
设置完成后,右键项目->maven->update project,
这样每次新建maven项目都默认为jdk1.8版本了
解决方法三:
在解决方法二中,user settings的默认settigs.xml文件路径为:c:\users\38929.m2\settings.xml,如下图。只要把设置好的settings.xml文件复制到该目录下,然后update project就好了。
遇到问题,并解决问题,然后收集解决方法,才能加深学习的记忆。