解决maven update project 后项目jdk变成1.5的问题

一、问题描述

在Eclipse中新建了一个Maven工程, 然后更改JDK版本为1.7, 结果每次使用Maven > Update project的时候JDK版本都恢复成1.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版本。

三、解决方案

在pom.xml文件中增加如下配置:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
            <source>1.7</source>
            <target>1.7</target>
            <encoding>UTF-8</encoding>
        </configuration>
    </plugin>
</plugins>

原文地址:https://www.cnblogs.com/yifanSJ/p/9302549.html

时间: 2024-09-28 05:54:07

解决maven update project 后项目jdk变成1.5的问题的相关文章

解决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工程中报 Missing artifact jdk.tools:jdk.tools:

jdk.tools:jdk.tools是与JDK一起分发的一个JAR文件,可以如下方式加入到Maven项目中:<dependency>    <groupId>jdk.tools</groupId>    <artifactId>jdk.tools</artifactId>    <version>1.7</version>    <scope>system</scope>    <syste

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

解决maven项目上有红叉,Cannot change version of project facet Dynamic web module to 2.5

我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,项目上会有一个红叉,打开目录会发现src和web里根本没有错误,而且程序还能正常执行,但是看着就是不爽,原因是由于这个catalog比较老,用的servlet还是2.3的,而一般现在至少都是2.5,在Project Facets里面修改Dynamic web module为2.5的时候就会出现Cannot change version of project fac

解决maven web项目Cannot detect Web Project version. Please specify version of Web Project through...的错误

前面已经聊了创建maven web工程,但是问题来了,创建maven web工程之后会出现如下的错误,在pom.xml文件头部 有以下的错误 [plain] view plain copy print? Cannot detect Web Project version. Please specify version of Web Project through <version> configuration property of war plugin. E.g.: <plugin&g

解决使用maven的java web项目导入后出现的有关问题 -cannot be read or is not a valid ZIP file

错误问题:虽然查找repository目录下是有jar包,但是jar包是有问题的(可能是下载不完整),所以更改镜像地址到国内. 解决方案: 1)删除提示错误路径下的所有jar包(C:\Documents and Settings\Administrator\.m2\repository\org...). 2)更改镜像地址,最好改成国内(阿里),然后重新 Maven --->update project

从头开始基于Maven搭建SpringMVC+Mybatis项目(2)

接上文内容,本节介绍Maven的聚合和继承. 从头阅读传送门 互联网时代,软件正在变得越来越复杂,开发人员通常会对软件划分模块,以获得清晰的设计.良好的分工及更高的可重用性.Maven的聚合特性能把多个模块聚合在一起构建,并促进各子模块通过继承父模块的pom配置来保持配置的一致.为了演示这些特性,本文的示例划分为数据持久层petstore-persist和petstore-web两个模块. 下面来介绍创建项目的过程,首先创建父模块perstore-parent. File -> New ->

Maven在导入其他项目时报错:Plugin execution not covered by lifecycle configuration

这几天想把Spring 攻略第二版完整的学习下,所以就在网上下载了该教材的源码,寻思边看书边练习!之前有过一些Maven开发的相关经验,觉得Maven在引入jar包上的配置还是很方便的,所以这次源码的Maven配置我倒是不担心,没想到项目导入后就报了一堆错误,一个一个的去解决,很多问题网上都有解决办法,就剩下一个问题折腾好久才解决掉,现将问题的解决过程记录如下: 1 问题描述 Plugin execution not covered by lifecycle configuration: org