Cannot change version of project facet Dynamic Web Module to 3.0 requires Java 1.6 or newer 解决方案...

本文介绍了解决Eclipse Maven Java EE项目中出现的编译错误的方法,特别是当项目要求Java 1.6或更高版本时。文章详细解释了如何通过修改项目的.classpath文件和使用maven-compiler-plugin来调整Maven的编译级别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Eclipse Maven 开发一个 jee 项目时,编译时遇到以下错误
Description Resource Path Location Type
Dynamic Web Module 3.0 requires Java 1.6 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
如图:
Dynamic Web Module 3.0 requires Java 1.6 or newer
但是 Eclipse 明明已经将编译级别设置为 1.7:
Eclipse compiler
这是由于你的 Maven 编译级别是 jdk1.5 或以下,而你导入了 jdk1.6 以上的依赖包:查看 Eclipse 的 Navigator 视图下该项目的 .classpath 文件:

[html]  view plain  copy
 
 print?
  1. <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">  
  2.     <attributes>  
  3.         <attribute name="maven.pomderived" value="true"/>  
  4.     </attributes>  
  5. </classpathentry>  


解决办法
使用 maven-compiler-plugin 将 maven 编译级别改为 jdk1.6 以上:

[html]  view plain  copy
 
 print?
    1. <build>  
    2.     <plugins>  
    3.         <!-- define the project compile level -->  
    4.         <plugin>  
    5.             <groupId>org.apache.maven.plugins</groupId>  
    6.             <artifactId>maven-compiler-plugin</artifactId>  
    7.             <version>2.3.2</version>  
    8.             <configuration>  
    9.                 <source>1.7</source>  
    10.                 <target>1.7</target>  
    11.             </configuration>  
    12.         </plugin>  
    13.     </plugins>  
    14. </build

dynamic web module 版本之间的区别:

Servlet 3.0December 2009JavaEE 6, JavaSE 6Pluggability, Ease of development, Async Servlet, Security, File Uploading
Servlet 2.5September 2005JavaEE 5, JavaSE 5Requires JavaSE 5, supports annotations
Servlet 2.4November 2003J2EE 1.4, J2SE 1.3web.xml


错误Cannot change version of project facet Dynamic Web Module to 3.0:
在项目右键属性的Project facts中把Dynamci Web Module设置为3.0,如果报错则直接修改项目文件:工程.settings目录下的org.eclipse.wst.common.project.facet.core.xml,同时把web.xml开头设置由2.5改成3.0为:

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
然后执行项目右键Maven的Update Project...即可。

转载于:https://www.cnblogs.com/nizuimeiabc1/p/8204510.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值