maven-archetype-webapp (若無,可先選 simple 後手動轉換)com.example)、Artifact Id (如 my-webapp)、Version、Package → Finish預設 webapp 目錄結構不完整,需手動補齊:
src/main/java src/main/resources src/test/java src/test/resources
target/test-classes。.settings/org.eclipse.wst.common.project.facet.core.xml,將 jst.web version 改為 3.0 (Servlet 3.0)。<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- Servlet API (provided 由容器提供) -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- JSP API -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
<scope>provided</scope>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 測試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml> <!-- Servlet 3.0+ 可無 web.xml -->
</configuration>
</plugin>
</plugins>
</build>
https://localhost:8080/專案名/ 顯示 index.jsp 即成功web.xml 版本與 Servlet 版本不匹配 → 更新 web-app 根元素 version="3.0" 或移除 web.xml 使用註解。mvn dependency:tree 分析,使用 <exclusion> 排除傳遞依賴。