1. 程式人生 > >maven 遇到failOnMissingWebXml有關問題解決方法:web.xml is missing and is set to true

maven 遇到failOnMissingWebXml有關問題解決方法:web.xml is missing and is set to true

使用maven建立專案時有時在pom.xml的war處出現failOnMissingWebXml的錯誤,報錯資訊為:web.xml is missing and <failOnMissingWebXml> is set to true;

原因是:maven工程中要求必須新增Web.xml檔案,然而最近的web應用開發中web.xml檔案已經變得可有可無了。不過Maven還沒有跟上這一變化,因此我們有兩種方法解決此問題:

方法一:

如果專案裡沒有web.xml,在專案裡新增一個web.xml,重新整理一下專案,就應該沒有錯誤;如果你的專案在/src/main/webapp/WEB-INF 下有web.xml,但是仍然還是報這個錯誤,需要兩步操作:

1)右擊專案,開啟Properties對話方塊,點選Deployment Assembly選項,在右邊新增一個資料夾,並且儲存設定

2 )在eclispe上方點選Project ->Clean 清理一下這個專案

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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
		xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
		id="WebApp_ID" version="2.5">
		<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>

然而方法一似乎並沒有解決問題,所以繼續往下看。

方法二:

只需要處理<failOnMissingWebXml>false</failOnMissingWebXml>被設定成false的問題即可。也就是在pom.xml中新增如下配置即可:

<build>  
    <plugins>  
        <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-war-plugin</artifactId>  
            <version>2.3</version>  
            <configuration>  
                <failOnMissingWebXml>false</failOnMissingWebXml>  
            </configuration>  
        </plugin>  
    </plugins>  
</build>
如圖:


問題已經解決。這樣做的好處是我們不必在專案生中成一個無用的web.xml檔案。在更新版本(具體從哪一個版本開始我也不知道~~)的maven中已經不存在web.xml檔案缺失的問題。