您的位置:首页 > 编程语言 > Java开发

Eclipse中Maven项目执行Maven update project 项目JRE System Library变为1.5的解决办法

2017-09-25 22:43 786 查看

1:问题描述

Eclipse中的Maven项目,本地Java版本1.8,每次右击项目--maven--update project(Alt+F5) 后,项目JRE System Library 都变为1.5。

2:异常原因

查看Maven官网  如下:









This is a known "feature" of Maven. The default compiler source/target version is 1.5 unless you
explicitly specify a version in your POM. The way Maven integration in Eclipse works, it (re)generates your
.project
,
.classpath
and
.settings
from the POM, so unless the POM specifies the correct JDK version, it will get reset to 1.5 every time you update the project configuration.

中文:

这是Maven已知的一个特性。除非在你的POM文件中显示的指定一个版本,否则会使用编译器默认的source/target版本1.5。主要还是在于Eclipse中Maven的集成方式起到了关键作用, 它会从POM文件中生成项目的.project,.classpath以及.settings, 因此除非POM文件指定了正确的JDK版本, 否则你每次更新项目配置的时候它都会重置到1.5版本。

图一:
编译器插件用来编译项目的源文件从3.0版本开始,用来编译Java源文件的默认编译器是javax.tools.JavaCompiler (如果你是用的是java 1.6) ; 如果你想强制性的让插件使用javac,你必须配置插件选项 forceJavacCompilerUse.。
图二:

目前source选项和target 选项的默认设置都是1.5,与运行Maven时的JDK版本无关;如果你想要改变这些默认设置,,可以参考 Setting the -source and -target ofthe Java Compiler中的描述来设置 source 和target 选项。

3:解决办法

办法一:在pom.xml文件中手动指定source和target的jre版本

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

</plugins>
</build>
办法二:在Maven的配置文件setting.xml中手动指定jdk、source和target的版本
<profiles>
<profile>
<id>maven-default-jre</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>

</profiles>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐