首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Eclipse 過濾 .svn / .git 版控目錄:Java Build Path 與 Resource Filters 兩大法

     編輯:Java 程式設計入門

專案引入 SVN/Git 後,.svn、.git 目錄滿天飛,干擾「Open Type」、「Search」、「Package Explorer」視圖。Eclipse 提供兩種層級的過濾機制,本文實測對比優劣,給出最佳組合策略。

方法一:Java Build Path → Source → Excluded (編譯層級)

  1. 專案右鍵 → Properties → Java Build Path
  2. 切換 Source 頁籤
  3. 展開 Source Folder (如 src/main/java)
  4. 選中 Excluded → Edit... → Add...
  5. 輸入排除模式:**/.svn/**、**/.git/**、**/.hg/**
  6. 確定全部對話框

效果:編譯器忽略版控目錄,不會產生 .class,「Open Type」(Ctrl+Shift+T) 不會搜到版控資料夾內的類。

方法二:Resource Filters (專案資源層級,更徹底)

  1. 專案右鍵 → Properties → Resource → Resource Filters
  2. Add... → 選 Exclude all、Folders
  3. Name matches 輸入:.svn、.git、.hg、CVS
  4. 勾選 All children (recursive)
  5. Apply and Close

效果:Package Explorer 直接隱藏、專案搜尋 (Ctrl+H) 排除、甚至檔案系統層級刷新不顯示,最徹底。

兩法差異對比

維度Build Path ExcludedResource Filters
隱藏 Package Explorer❌✅
編譯排除✅✅ (間接)
Open Type / Call Hierarchy✅ 排除✅ 排除
檔案搜尋 (Ctrl+H)❌ 仍搜尋✅ 排除
Team/CVS/SVN 操作不影響不影響
適用範圍單一 Source Folder整個專案

最佳組合策略:雙重保險

# .settings/org.eclipse.jdt.core.prefs (Build Path Excluded 自動產生)
source.. = src/main/java/ \
           src/test/java/
src/main/java/excludes = **/.svn/**,**/.git/**
src/test/java/excludes = **/.svn/**,**/.git/**

# .settings/org.eclipse.core.resources.prefs (Resource Filters 自動產生)
filters = name=.svn|name=.git|name=.hg|name=CVS,1,1
  • ✅ Resource Filters 為主:UI 乾淨、搜尋快
  • ✅ Build Path Excluded 為輔:確保編譯器不誤編
  • ✅ 團隊共享 .settings/ 目錄至版控,新成員 Checkout 即生效

進階:Maven/Gradle 專案自動化

Maven 專案 maven-eclipse-plugin 可自動產生:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.10</version>
    <configuration>
        <sourceExcludes>**/.svn/**,**/.git/**</sourceExcludes>
    </configuration>
</plugin>

Gradle eclipse 插件同理:

eclipse {
    sourceSets {
        main {
            java {
                exclude '**/.svn/**', '**/.git/**'
            }
        }
    }
}

常見問題 QA

Q: 過濾後無法 Commit .svn 目錄?
A: 過濾僅影響 Eclipse 視圖與編譯,命令列 svn/git 完全不受影響。
Q: 專案已有大量 .class 在 .svn 內?
A: 關閉 Eclipse → 刪除專案下所有 .svn 內的 *.class → 重新開啟 → Clean Project。
Q: Spring Boot 專案 target/ 也要過濾?
A: target/ 建議加入 Resource Filters (Exclude, Folder, name=target),避免搜尋到編譯產物。

總結

**「Resource Filters 隱藏 UI、Build Path Excluded 保編譯」**,雙管齊下,配置入版控,團隊零干擾。

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