![](/img/trans.png)
[英]Eclipse + Maven and hidden ${basedir}/target/classes folder?
[英]Is there a way to hide Maven 2 “target/” folder in Eclipse 3?
我在Eclipse 3.3.2中使用maven 2.0.9。
我習慣於每天通過mvn clean install
啟動一次新的構建。 然后,如果我刷新我的Eclipse項目,它將被來自Maven 目標目錄的文件“污染”。
在執行搜索,通過“開放資源”等獲取資源時,這非常煩人。
有沒有辦法避免Eclipse在這個文件夾中查找?
右鍵單擊要忽略的文件夾,打開“屬性”對話框,選擇“資源”選項卡,然后選中“派生”復選框。
在Maven中重新配置“clean”不要刪除目標目錄:
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<filesets>
<!-- delete directories that will be generated when you
start the develpment server/client in eclipse
-->
<fileset>
<directory>target</directory>
<includes>
<include>**/*</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
(見: http : //maven.40175.n5.nabble.com/how-to-NOT-delete-target-dir-td3389739.html#a3413930 )
靛藍解決方案[SR2]
Project Explorer
> Customize View
> Filters
> [*] Maven Build Folder
我一直對這個問題很生氣,我寫了一個插件來解決它。 您可以從以下位置獲取源和jar:
為了解決這個問題,我這樣做了:
-----------在這里剪下腳本--------------
/*
* Menu: Find System Prints > Beanshell
* Script-Path: /GroovyMonkeyScripts/monkey/UpdateMavenDerived_Beanshell.gm
* Kudos: Bjorn Freeman-Benson & Ward Cunningham & James E. Ervin
* License: EPL 1.0
* LANG: Beanshell
* DOM: http://groovy-monkey.sourceforge.net/update/plugins/net.sf.groovyMonkey.dom
*/
out.println("Setting target directories to derived status.");
var projects = workspace.getRoot().getProjects();
for ( var i = 0; i < projects.length; i++) {
var project = projects[i];
if (project.isOpen()) {
out.println("Project: " + project.getName());
var members = project.members();
for ( var j = 0; j < members.length; j++) {
if (members[j].getName().equals("target")) {
out.println("setting derived status on: "+ members[j].getFullPath());
members[j].setDerived(true);
}
}
}
}
您是否嘗試配置“Java元素過濾器”選項對話框(通過項目瀏覽器的右上角)?
如果需要,您可以定義自己的ViewerFilter
首選項>團隊>忽略的資源
添加“target”,然后重新啟動Eclipse。
maven插件不會隱藏目標目錄。 但它確實使用maven目標文件夾來配置eclipse。 所以eclipse使用目標/類和目標/測試類,eclipse會過濾掉這些文件夾。 這是通過“mvn eclipse:eclipse”以及m2eclipse插件完成的。 除了這兩個文件夾(例如生成的jar文件)之外,目標目錄中的所有內容都是可見的。
您可以為包資源管理器創建過濾器,但這不會影響“開放資源”。
我有一些問題,因為這里的一些解決方案僅適用於某些視圖,所以我做了一個插圖摘要。
在Eclipse 4.4(Luna)中進行測試,根據其他答案,應該像3.7這樣工作。
Package Explorer查看菜單 → Filters...
→選中Name filter patterns
和輸入target
。
小心,這將隱藏所有名為target
文件夾和文件,而不僅僅是默認的maven構建目錄! Project Explorer視圖有一個更好的選項,沒有這個問題。
Project Explorer查看菜單→ Custom View...
→搜索“maven”並檢查Maven build folder
。
選中此選項會隱藏項目pom.xml配置中定義的構建目錄。
如果經常使用“mvn clean install”,使用資源過濾器可以解決問題。
基本上它會將'target'添加到子文件夾以將文件夾直接排除到.project文件。 運行此腳本后,如果將項目導入到eclipse,則可以看到設置“項目” - >“屬性” - >“資源” - >“資源過濾器”。 在此之前,每當我運行mvn clean install時,eclipse占用了我50%的CPU,但現在它在構建項目時保持在5%以下。
function eclipse-setup() {
mvn eclipse:clean
mvn eclipse:eclipse
#maven target folders
find . -name .project -exec sed -i.MSORG 's/<\/projectDescription>/<filteredResources> <filter> <id>1314376338264<\/id> <name><\/name> <type>26
<\/type> <matcher> <id>org.eclipse.ui.ide.multiFilter<\/id> <arguments>1.0-name-matches-false-false-target<\/arguments> <\/matcher> <\/filter> <filt
er> <id>1314387234341<\/id> <name><\/name> <type>6<\/type> <matcher> <id>org.eclipse.ui.ide.multiFilter<\/id> <arguments>1.0-name-matches-false-fals
e-*.cache.html<\/arguments> <\/matcher> <\/filter> <\/filteredResources><\/projectDescription>/' {} \;
}
當Eclipse凍結,查看進程活動時,我可以看到它瀏覽所有目標,.hg和.git目錄。 而且,這些目錄也被復制到Eclipse的bin目錄中。 很多CPU和磁盤使用都沒有。
不清理目標目錄是不可接受的解決方案。
有一個使用Monkey腳本的解決方案(http://maven.40175.n5.nabble.com/Eclipse-amp-target-directory-td72354.html),但項目已經關閉。
我仍然在尋找一種解決方案來告訴Eclipse忽略Maven目標目錄,以及.hg和.git目錄。
Eclipse不斷觀察那些是一種痛苦。
我也使用m2eclipse,但它沒有解決這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.