Maven可以方便地帮助我们解决引用Jar包的问题,但如果没有配好版本参数的情况总是会接收到这样的错误:
Maven Java EE Configuration Problem (2 items)
Cannot change version of project facet Dynamic Web Module to 3.0.
One or more constraints have not been satisfied.
如下图所示:
关键:产生此问题的根本原因是web的版本也projcect facet配置的版本不一致导致!!
知道原因了,那么解决起来就容易了:
1、修改project face的版本
这里,我们选择2.5,用记事本打开.settings\org.eclipse.wst.common.project.facet.core.xml文件,找到“installed facet="jst.web"”,我们将version的值改成2.5
2、修改web.xml的版本
同样,为了保证版本的一致,这里也必须是2.5,我们用记事本打开WEB-INF\web.xml,将"web-app"结点的http://java.sun.com/xml/ns/javaee/web-app_#_#.xsd改成http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd,并且version的值要改成"2.5"
3、更新Maven
右键项目的根目录,选执行“刷新”命令(我习惯用F5),然后执行右键菜单的Maven -> Update Project ...命令,等到Eclipse右下边的进度栏消失时,那个Maven的错误提示也随之消失。
另外,多提一句,这里说的2.5并不是随意定的值,如果你是用tomcat7或更低的版本,那么就只能用3.0以下的版本,否则你是无法添加项目到Tomcat中的,就算瞎捣腾添加进去了,也是无法正常启动Tomcat的。另外,填写的这个版本http://java.sun.com/xml/ns/javaee/web-app_#_#.xsd文件必须要能真实的找到,否则也是不行的,例如你写成http://java.sun.com/xml/ns/javaee/web-app_2_3.xsd,实际上是找不到的了。