Eclipse 通过 Maven 建立 SSM 框架项目(web项目)时,默认的web.xml文件版本为 2.3,jre版本为 1.5;在修改其版本遇到了各种问题
例如:
web.xml is missing and <failOnMissingWebXml> is set to trueJavaServer Faces 2.2 can not be installed : One or more constraints have not been satisfied.JavaServer Faces 2.2 requires Dynamic Web Module 2.5 or newer等问题查找方法时,配置顺序的错误,也是引发问题的原因。修改 jre和web.xml 版本,要处理好各版本之间的关系,比如 web3.0 的需要 Java 1.6 以上,JavaServer Faces 需要 web 版本 2.5 以上等等;了解规则,就可以很好的解决问题。
下面是总结的一个方法,有创建的整个流程。
另外:一种可行的方法是通过修改项目目录下
.settings/org.eclipse.wst.common.project.facet.core.xml文件中 web 和 java 版本的方法。下面的方法不需要修改这个文件,更加简便。
Eclipse版本:Neon.1a Release (4.6.1)
1.新建一个Maven Project
选择Maven Project
选择maven-archetype-webapp
Group Id是项目组织唯一的标识符,实际对应 Java 的包的结构,是 main 目录里 java 的目录结构。 Artifact Id就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
新建的Maven项目结构为:
注意红框的结构,只有一个 src/main/resources,而且项目报下面的 HttpServlet 错误
项目右击 Properties 选择Java Build Path 选择 Add Library添加 Server Runtime 选择 Apache Tomcat7 服务器(Tomcat8 需要 web版本3.1)
HttpServlet 错误解决,项目结构也有变化,自动补全src/main/java和src/test/java目录
此刻 maven 项目的 web.xml 版本为2.3,jre 版本为1.5,需要升级。
2.修改项目 jre版本和 web.xml 版本
网上的版本多而杂,自己实践才是关键
2.1修改 jre 版本
修改 jre 版本,不能再Java Bulid Path中修改,一旦项目 update project又会回到 1.5 的版本,可以在pom.xml 文件中声明
pom.xml
... ?????<build> ???<finalName>TestMaven3</finalName> ???<plugins> ???????????<!-- 修改maven默认的JRE编译版本,1.8代表JRE编译的版本,根据自己的安装版本选择1.7或1.8 --> ???????????<plugin> ???????????????<groupId>org.apache.maven.plugins</groupId> ???????????????<artifactId>maven-compiler-plugin</artifactId> ???????????????<configuration> ???????????????????<source>1.8</source> ???????????????????<target>1.8</target> ???????????????</configuration> ???????????</plugin> ???????</plugins> ?</build></project>项目右击选择Maven Update Project项目的Java Build Path为:
之后你可以 Edit 把 jre 指定到Workspace default JRE
2.2修改web.xml文件版本
这是默认生成的web.xml,可以看到是2.3版本的。
web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app> ?<display-name>Archetype Created Web Application</display-name></web-app>项目右击Properties 选择Project Facets(项目模板),如下图,可以看到Dynamic Web Module版本为 2.3
直接更改为3.0?,但是并不能更改
这里可以先把Dynamic Web Module勾选去掉,之后Apply。
再接着勾选Dynamic Web Module,注意下方出现Further configuration available...选项;接着更改为想要的版本 3.0,点击Further configuration available...
之后,修改 Content director为src/main/webapp,勾选Generate web.xml deployment descriptorOK,保存退出Project Facets
之后修改src/main/webapp/WEB-INF/web.xml文件,头信息版本修改为 3.0 版本的。
web.xml
<?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" id="WebApp_ID" version="3.0"></web-app>之后,项目右击选择Maven Update Project。
项目结构为:
Eclipse创建Maven-Web项目及解决 jre版本和web.xml版本问题
原文地址:https://www.cnblogs.com/alone-striver/p/9065832.html