Maven项目Update Project自动恢复为JRE1.5的问题

问题:

使用Eclipse建立Maven项目的时候,JDK默认为1.5在用户使用Config Build Path更新为最新JRE库比如1.8或者1.7的后,Maven项目显示JRE1.8 or 1.7,但是当我们不经意Update Project后,发现,JRE又重新恢复为JRE1.5.

原因分析

Maven官方文档有如下描述:

编译器插件用来编译项目的源文件.从3.0版本开始,

用来编译Java源文件的默认编译器是javax.tools.JavaCompiler (如果你是用的是java 1.6) .

如果你想强制性的让插件使用javac,你必须配置插件选项 forceJavacCompilerUse.

同时需要注意的是目前source选项和target 选项的默认设置都是1.5, 与运行Maven时的JDK版本无关.

如果你想要改变这些默认设置, 可以参考 Setting the -source and -target of the Java Compiler中的描述来设置 source 和target 选项.

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

解决方法1

可以修改pom.xml,直接指定JDK版本,例如:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <!-- maven compiler plugin版本必须正确否则下面设置的JDK版本不起作用 -->
  <version>3.5.1</version>
  <configuration>
    <source>1.8</source>
    <target>1.8</target>
  </configuration>
</plugin>

解决方法2
修改setting.xml
直接通过Maven的配置文件进行指定JRE版本。Global Setting与User Setting两个设置指定位置的setting.xml文件。在profiles标记中添加如下配置

<!-- 此处的jdk版本须与java jdk版本一致 --><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>    

原文地址:https://www.cnblogs.com/xiaobaizhiqian/p/8146623.html

时间: 2024-10-06 20:36:45

Maven项目Update Project自动恢复为JRE1.5的问题的相关文章

解决maven项目update project更改项目编码的问题

现象 eclipse项目update project时会修改项目的编码为gbk编码,导致中文乱码问题 解决办法 在pom.xml文件中指定编码方式: <properties> <!-- 文件拷贝时的编码 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.

解决maven项目update project会更改jdk版本问题

一.问题描述 在Eclipse中新建了一个Maven工程, 然后更改JDK版本为1.6, 结果每次使用Maven > Update project的时候JDK版本都恢复成1.5. 二.原因分析 Maven官方文档有如下描述: 编译器插件用来编译项目的源文件.从3.0版本开始, 用来编译Java源文件的默认编译器是javax.tools.JavaCompiler (如果你是用的是java 1.6) . 如果你想强制性的让插件使用javac,你必须配置插件选项 forceJavacCompilerU

Maven项目Update Project...后JRE System Library会自动变回1.5解决办法

<pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</sourc

【maven 报错】maven项目update之后报错One or more constraints have not been satisfied.

在右键项目Update Project之后报错:One or more constraints have not been satisfied.Spring 4.1 requires Java 1.6 or newer. 解决问题: The solution is I have to goto to the ".settings" folder which is at the project location and deleted "org.eclipse.wst.comm

Maven项目Update Maven Project后报错:Dynamic Web Module 3.0 requires java 1.6 or newer

工具:eclipse mars 环境:jdk1.8,tomcat8 报错: 说明:Maven项目会默认指定编译环境,我这默认指定的是JRE 1.5.这与自己设置的Java Compiler无关,需要在pom.xml中指定.在<build></build>之间加入如下代码: <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>m

maven项目无法实现自动导入

最近总是出现IDEA无法自动导入maven项目的问题. 通过查找资料发现是因为maven版本与idea的版本有冲突,maven版本需要使用比idea更老的版本才能实现自动导入. 具体参见:https://blog.csdn.net/weixin_40633275/article/details/102686611 原文地址:https://www.cnblogs.com/jasonboren/p/12285998.html

IDEA 中 maven 项目依赖没有自动 add class path的问题

Settings -> Maven -> Importing 确保 import maven projects automatically 勾上,自动加载maven依赖 到 classpath 确保 ingored 没有本项目的pom

解决导入MAVEN项目报错Dynamic Web Module 3.1 requires Java 1.7 or newer.

解释:web模块需要使用java1.7及以后的版本,目前的版本不符合.因而只需要修改java版本到1.7及以上即可. 解决方法: 1.保证 在eclipse 构建 web中关于java版本有三处需要修改统一. 右击项目,选择"propertie"===>分别修改一下内容,保持jdk版本一致 1.1 修改Java Build Path的libraries版本 1.2 修改Java Compiler 中的JDK Compliance版本 1.3 修改Project Facet中jav

解决Eclipse建Maven项目module无法转换为2.3

Maven项目在Project Facets里面修改Dynamic web module为2.3的时候就会出现Cannot change version of project facet Dynamic web module to 2.3,如图: 首先打开Navigator,如图: 修改项目的设置,在Navigator下打开项目.settings目录下org.eclipse.wst.common.component,如图:(将1.5改成1.6) 打开org.eclipse.wst.common.