繁体   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