WAR (Web Application Archive) 是 Java Web 應用的標準部署格式,本質是包含 WEB-INF、靜態資源、類文件的 ZIP 壓縮包。將專案打包為 WAR 可直接部署至 Tomcat、Jetty、JBoss 等 Servlet 容器的 webapps 目錄,容器啟動時自動解壓部署。
在 Project Explorer 中右鍵點選 Web 專案(如 venus),選擇 Export...。
在彈出向導中展開 Web 節點,選擇 WAR file,點擊 Next >。
D:/deploy/venus.war)。WEB-INF/src),便於遠端除錯,生產環境建議取消勾選。點擊 Finish,Eclipse 將編譯專案、打包資源,在控制台輸出進度。完成後即可在目標目錄看到 venus.war。
現代專案建議使用構建工具自動化打包,而非依賴 IDE 手動操作:
# Maven
mvn clean package -DskipTests
# 輸出:target/venus.war
# Gradle
./gradlew war
# 輸出:build/libs/venus.war
優勢:可整合 CI/CD 流程、環境一致性、依賴管理、測試執行。
webapps/ 目錄。bin/startup.sh 或 startup.bat)。Deploying web application archive venus.war → Deployment of web application archive venus.war has finished。https://localhost:8080/venus/ 驗證應用啟動成功。| 現象 | 原因 | 解決 |
|---|---|---|
| WAR 包體積異常小 | 未勾選 "Export source files" 且編譯輸出目錄配置錯誤 | 檢查 Project Properties → Java Build Path → Default output folder |
| 部署後 404 | web.xml 缺失或 context-root 不匹配 | 確認 WEB-INF/web.xml 存在;context-root 即 WAR 檔名(去除 .war) |
| 類找不到錯誤 | 依賴 JAR 未打入 WEB-INF/lib | Maven: 檢查 scope=compile;Eclipse: Deployment Assembly 添加 Maven Dependencies |
Eclipse 圖形化導出 WAR 適合快速驗證與學習,生產環境務必採用 Maven/Gradle 自動化構建。掌握 WAR 結構(WEB-INF/classes、WEB-INF/lib、web.xml、靜態資源)對排查部署問題至關重要。