簡體   English   中英

有沒有辦法在Eclipse 3中隱藏Maven 2“target /”文件夾?

[英]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:

https://github.com/YA2O/Eclipse_Plugin_Target_Derivator

為了解決這個問題,我這樣做了:

  • 為Eclipse安裝Groovy Monkey
  • 創建Bean Shell腳本“UpdateMavenDerived_Beanshell.gm”以將任何名為target的目錄標記為派生。
  • -----------在這里剪下腳本--------------

    /*
     * 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

    Package Explorer查看菜單Filters... →選中Name filter patterns和輸入target

    小心,這將隱藏所有名為target文件夾和文件,而不僅僅是默認的maven構建目錄! Project Explorer視圖有一個更好的選項,沒有這個問題。

    Package Explorer菜單包資源管理器對話框

    Project Explorer

    Project Explorer查看菜單→ Custom View... →搜索“maven”並檢查Maven build folder

    選中此選項會隱藏項目pom.xml配置中定義的構建目錄。

    Project Explorer菜單Project Explorer對話框

    你在使用Eclipse的Maven插件嗎?

    我想它會為你隱藏一些“污染”。

    它還允許您在Eclipse中執行構建 - 這意味着它將同時為您刷新項目視圖。

    Maven 2 Eclipse

    如果經常使用“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.

     
    粵ICP備18138465號  © 2020-2024 STACKOOM.COM