解决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,你必须配置插件选项 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文件中增加如下配置:

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

四、参考资料

http://maven.apache.org/plugins/maven-compiler-plugin/index.html

Maven Change default source level to 1.5 这个Jira.

时间: 2024-10-24 12:42:48

解决maven项目update project会更改jdk版本问题的相关文章

解决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自动恢复为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项目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 install失败 错误 Failed to execute goal org.apache.maven.plugins

1.Maven构建失败 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin: 2.3.4 :compile ( default -compile) on project oecp: Compilation failure 2.解决方法:使用自己的jdk,记住是jdk,因为jdk里本身包含jre.而不是单纯的jre.本人初学者,表达肤浅,请看勿笑. 解决maven项目 maven install失败 错误 Fa

【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

ubuntu更改jdk版本的问题

由于ubuntu中可能会有默认的jdk,如openjdk,所以,为了使默认使用的是我们安装的jdk,还要进行如下工作.执行代码:update-alternatives --install /usr/bin/java java /usr/lib/jvm/java/jdk1.6.0_12/bin/java 300update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java/jdk1.6.0_12/bin/javac 300通

解决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项目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

eclipse创建maven项目时如何修改web的版本和jdk的版本

在使用eclipse创建maven项目的时候,默认的web.xml的版本时2.3,默认jre的版本时1.5,有时候我们需要修改一些高的版本 1.首先找到项目下面的.settings下面的org.eclipse.wst.common.project.facet.core.xml文件 2.修改里面的文件为我们需要的jdk和web的版本 3.在我们的maven项目的pom文件里面添加编译插件 <build> <finalName>SSM</finalName> <plu