標籤:而且 cat javaee config ted 技術分享 neon web.xml 編譯
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版本問題