Eclipse Maven 编译错误 Dynamic Web Module 3.1 requires Java 1.7 or newer 解决方案

Eclipse Maven 开发一个 jee 项目时,编译时遇到以下错误
Description Resource Path Location Type
Dynamic Web Module 3.1 requires Java 1.7 or newer. bdp line 1 Maven Java EE Configuration Problem

Description Resource Path Location Type
One or more constraints have not been satisfied. bdp line 1 Maven Java EE Configuration Problem
如图:

Eclipse Maven 编译错误 Dynamic Web Module 3.1 requires Java 1.7 or newer 解决方案

 

但是 Eclipse 明明已经将编译级别设置为 1.7:
Eclipse Maven 编译错误 Dynamic Web Module 3.1 requires Java 1.7 or newer 解决方案
这是由于你的 Maven 编译级别是 jdk1.6 或以下,而你导入了 jdk1.7 以上的依赖包:查看 Eclipse 的 Navigator 视图下该项目的 .classpath 文件:

Eclipse Maven 编译错误 Dynamic Web Module 3.1 requires Java 1.7 or newer 解决方案

回到顶部

2 解决过程

概述:使用maven构建web项目时,经常会遇见这个问题,问题原因报错讲述的很清晰明了,就是web模块需要使用java1.7及以后的版本,目前的版本不符合。因而只需要修改java版本到1.7及以上即可。

 

 解决方法:

 1. 在eclipse 构建 web中关于java版本有三处需要修改统一。

 (1)在 Java Build Path的libraries中修改

(2)在Java Compiler 中修改

(3)在Project Facet中修改

2. 大部分按上上述修改就应该可以了,但总是有意外,还是报错。因为使用了 maven构建项目,因而最好在pom.xml文件中的build标签中加入以下代码:

Eclipse Maven 编译错误 Dynamic Web Module 3.1 requires Java 1.7 or newer 解决方案

<build>
  <plugins>
       <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-compiler-plugin</artifactId>
             <version>3.1</version>
             <configuration>
                 <source>1.7</source>     //如果是1.8,修改为1.8
                 <target>1.7</target>      //如果是1.8,修改为1.8
             </configuration>
       </plugin>
  </plugins>
</build>

Eclipse Maven 编译错误 Dynamic Web Module 3.1 requires Java 1.7 or newer 解决方案

  3.最后再右键使用maven的Update Project 即可