進行如下步驟的前提是你已經安裝好本地maven庫和eclipse中的maven插件了(有的eclipse中已經集成了maven插件)html
1、Maven項目的新建java
一、鼠標右鍵---->New----->Other...web
二、直接點擊下一步app
三、選中 maven-archetype-webapp 後點擊下一步eclipse
四、 Group Id 中輸入項目的基本包名。webapp
Artifact Id 中輸入項目名。jsp
Version 中的值默認就行,不進行選擇。maven
Package 中寫的是默認生成的一個包名,不寫也能夠。post
接着點擊完成就能夠了。測試
五、建立好項目後結構以下:
------web.xml 的版本是2.3的,是老版本
------新生成的工程默認的 jdk 和 compiler 都是1.5 的
------並且沒有src/main/java 這樣結構的 maven 目錄
2、Maven項目的配置
一、修改web.xml
因爲Maven中的 maven-archetype-webapp 樣板項目的 web.xml 是2.3版本的,咱們須要替換成新版本:
能夠在Eclipse中新建一個web工程,將它 WebContent/WEB-INF 目錄下的 web.xml 文件複製替換掉咱們的 Maven 項目中 src/main/webapp/WEB-INF/ 目錄下的web.xml 文件。
原來的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>
替換後的web.xml內容
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>mydemo</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
二、pom.xml 裏面build 標籤下添加 maven編譯插件
<plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins>
三、添加缺乏的目錄並指定輸出路徑
Maven規定,必須建立如下幾個包,而且分別對應相應的輸出路徑
src/main/resources
src/main/java
src/test/resources
src/test/java
右鍵項目----->BUild Path----->Configure Build Path...
(1)在Order and Export (這裏是控制項目中包的顯示順序的)這個欄裏會發現有幾個目錄顯示missing(丟失),隨便選中一個改變下順序(Up 或者 Down 或者 Top 或者 Bottom),而後點擊應用,OK,丟失的目錄會在項目中顯示出來,再次進到這個地方,紅叉標識已經消失了。(這一步比較奇怪,多是eclipse中maven插件的bug吧)
(2)接着在Source裏會發現已經有三個目錄了,因此點擊Add Folder... 添加缺乏的目錄(這裏注意把Allow output folders for source folders 上,方便下一步進行輸出路徑的設置)
點擊Create New Folder... ,輸入缺乏的包名,直接點擊完成,回到這個界面點擊OK就行
(3)接着就會看到Source這裏多了一個剛纔添加的包,這個新加的包沒有指定輸出目錄,須要進行修改
在Source 裏面設定4個文件夾的輸出Output folder,雙擊進行修改
分別修改輸出路徑爲
/src/main/resources 對應 target/classes
/src/main/java 對應 target/classes
/src/test/resources 對應 target/test-classes
/src/test/java 對應 target/test-classes
我這隻須要修改第四個目錄就能夠了(前三個都默認設置好了,若是你的沒設置好就設置一下)
最終的效果以下圖所示:
此時的目錄結構爲:
能夠看出已是maven項目的結構了(這裏有報錯,報的是Cannot change version of project facet Dynamic Web Module to 3.1,先無論,最後再處理)
四、配置項目部署程序集(Web Deployment Assembly)
右鍵項目----->Properties----->Deployment Assembly
(1)刪除test的兩項,由於test是測試使用,並不須要部署。
(2)添加Maven依賴,設置將Maven的jar包發佈到lib下,若是已經有了就不須要添加了。
Add -----> Java Build Path Entries -----> Maven Dependencies -----> Finish
最終是這樣的
3、將Maven項目轉換成Dynamic Web Project
(1)右鍵項目----->Properties
在左側選擇 Project Facets,單擊右側的 Convert faceted from
剛進來時是這樣的,須要把Dynamic Web Module (動態web模塊)的版本修改成 3.1 (最新版),Java的版本修改成項目用的1.8
這裏可能會報一個錯誤,在修改動態web模塊版本的時候會提示Cannot change version of project facet Dynamic Web Module to 3.1
沒關係,只須要去掉動態web模塊前面的對勾,點擊OK,接着再進入這個界面就可以修改動態web模塊的版本了。
修改完成是這樣的,接下來單擊 Further Configuration available... (進一步可用的配置)連接
下面若是沒有顯示出 Further Configuration available... 的話,能夠在Dynamic Web Module 前去掉打鉤,點擊應用,而後再填上鉤,再點擊應用,通常 Further Configuration available... 就會出現了。
修改 Content directory(內容目錄) 的值 WebContent 爲 src/main/webapp ,單擊OK,而後回到上一步窗口直接點擊OK
這裏可能出現的問題是,會給你個提示目錄錯誤的彈窗,沒關係,你能夠檢查下以前文件輸出路徑的設置是否有問題(Java Build Path -----> Source),修改過來應該就沒問題了
完成這一步以後你能夠檢查下你的Java Build Path 中的Libraries 中的jdk版本,還有Java Compiler (編譯環境),發現都已經改成1.8版本了。
(2)接下來你項目中的pom.xml 可能報一個錯 web.xml is missing and <failOnMissingWebXml> is set to true ,若是沒報錯,能夠忽略不看
解決辦法:
使用maven建立項目有時在pom.xml的war處出現failOnMissingWebXml的錯誤,根據pom.xml 能夠知道這個項目是web項目,打包時打成war包。
錯誤提示的是丟失web.xml,因此若是項目裏沒有web.xml,則在項目裏添加一個web.xml,刷新一下項目,就應該沒有錯誤了。
若是還有錯的話就須要在eclispe上方點擊Project ----->Clean 清理一下這個項目了。
通過這兩步錯誤就應該已經清除了。
(3)到這一步,web項目就建立完畢了,能夠看一下你的項目結構,若是有什麼build目錄,WebContent 目錄的話能夠直接刪除(確保你的輸出目錄之類的已經設置好了)
直接把頁面資源放置在src/main/webapp/ 目錄下,因此最終的項目結構以下所示:
基本上清除未知錯誤的方法是:
一、右鍵項目----->Run As----->Maven clean
二、Project----->Clean...
三、右鍵項目----->Maven----->Update Project...
若是沒效果,能夠試着把pom.xml稍微修改下,好比加個空格之類的,再進行一次,應該就不報錯了。(*^◎^*)