首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Eclipse 專案目錄結構:Java Web vs Maven 標準目錄差異

     編輯:程式設計綜合問答

兩種結構對照

特徵傳統 Java Web (Dynamic Web Project)Maven Web Project
源碼目錄`src` (直接放 package)`src/main/java`
資源檔`src` 混雜`src/main/resources`
Web 資源`WebContent` / `WebRoot``src/main/webapp`
編譯輸出`build/classes``target/classes`
打包產物手動 Export WAR`target/*.war` (mvn package)
依賴管理手動加 JAR 到 `WEB-INF/lib``pom.xml` 宣告,Maven 自動下載
測試代碼無標準位置`src/test/java`, `src/test/resources`

為何無法直接轉換

  • **建構模型不同**:Eclipse 專案靠 `.project`、`.classpath` 內建 Builder;Maven 專案靠 `pom.xml` 統一構建生命週期。
  • **目錄約定不同**:Maven 強制標準目錄結構 (Convention over Configuration),Eclipse 可任意設定源碼資料夾。

正確遷移步驟

  1. **建立新 Maven 專案**:File → New → Maven Project → 選 `maven-archetype-webapp`。
  2. **複製源碼**:將舊 `src` 下的 package 整個拖到 `src/main/java`;資源檔 (xml, properties) 移至 `src/main/resources`。
  3. **複製 Web 資源**:`WebContent`/`WebRoot` 內容 → `src/main/webapp` (含 `WEB-INF/web.xml`)。
  4. **配置 `pom.xml`**:補上依賴 (Servlet API, JSP, JSTL, 資料庫驅動、框架等),設定 `war`。
  5. **右鍵專案 → Maven → Update Project**,Eclipse 會自動配置 `.classpath`、Deployment Assembly。
  6. **部署測試**:右鍵 → Run As → Maven install → 產出 `target/*.war` 丟入 Tomcat `webapps`。

常見遷移問題

問題解決
JSP 編譯找不到類別確認 `src/main/java` 標記為 Source Folder (Build Path)、`pom.xml` 有 `maven-compiler-plugin` 設定 JDK 版本。
資源檔未打包進 WAR檢查 `src/main/resources` 在 `target/classes` 輸出,或在 `pom.xml` `` 明確包含。
第三方 JAR 衝突移除 `WEB-INF/lib` 手動放的 JAR,改在 `pom.xml` 宣告依賴,Maven 传递依賴自動解決版本衝突。

**結論**:不要嘗試就地修改目錄結構,**重新建立 Maven 專案並遷移代碼** 是標準、穩健的做法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved