这种问题在建maven项目时总会时不时出来,有时候就忘记怎么解决的了。这里总结一下。
我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一般现在至少都是2.5,在Project Facets里面修改Dynamic web module为2.5或者更高版本的时候就会出现Cannot change version of project facet Dynamic web module to 2.5
首先是报错信息,标题是代表性的报错,实际因为这个Web module版本问题报错是两条报错一块出来。如下图这样的。
解决办法如下,有几个点要注意,如果下面这几个点都ok,update一下工程报错就会消失:
1.右键工程/项目,点击show in,选择 navigator,就打开了eclips对应本工程的配置信息。打开setting下面的core文件,修改对应的数据为1.7,3.0/2.5保存即可。
2.一般说来,第一步完成,这个第二步是自动就会变成对应的数据的,无需修改。以防万一,我这里或许不具有普遍性意义,这里也注意下。
就是这个Dynamic Web Module 是3.0,Java为1.7
3.这个点最容易忽略。就是web.xml的schema版本还是2.3,这里需要把schema改成2.5或者3.0
改成内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Archetype Created Web Application</display-name>
</web-app>
由上面这三步,保存后右键update一下maven–>update项目,红叉就消失了。