如何从Eclipse项目中排除某些文件夹?

时间:2009-07-27 12:19:26

标签: eclipse project

我正在为现有的代码库添加一个eclipse项目,我想知道是否有办法将某些目录排除在eclipse之外?原因是我们的存储库中有一个巨大的“第三方”目录,它不能出现在我们用来有效同步的pair-programming插件的项目中。

任何线索?

5 个答案:

答案 0 :(得分:182)

有一种直接的方法:

  1. 在项目浏览器树中右键单击项目文件夹,然后转到“属性”。
  2. 资源 - >资源过滤器。
  3. 根据需要为文件/文件夹添加尽可能多的排除过滤器。
  4. P.S。如果项目树未自动更新,则可能必须在项目浏览器窗口中输入焦点时按F5。

答案 1 :(得分:15)

过滤器会隐藏视图中的资源,但它们仍然在项目中。 如果您在其他位置创建项目,则可以为要包含在项目中的文件夹创建linked resources

作为参考,我发布了another answer that describes how to use linked resources in more detail

答案 2 :(得分:6)

是的,您可以在项目中放置自定义过滤器。在项目资源管理器视图中,“包资源管理器”选项卡旁边的面板顶部应该有一个白色的向下箭头指示箭头。单击它,然后转到过滤器。从那里,您可以通过选中名称过滤模式旁边的框来指定您不想检测的某些文件夹模式。在这种情况下,我会把第三方库的名称。

答案 3 :(得分:1)

我一直这样做的方法是明确地将项目检查为同行。 e.g:

~/myworkspace/goodproject
~/myworkspace/3rdparty

然后只将“goodproject”导入eclipse。如果“3rdparty”是goodproject的子目录,你可以伪造出来......比如说你的svn项目是这样的:

project/
       src/
          main/
          3rdparty/

您可以在本地创建project / src /然后仅签出“main”目录,并让eclipse依赖打包版本(例如,如果您的项目是java,则指向jar)。

答案 4 :(得分:1)

如果要直接在 .project 文件中添加过滤器,请遵循以下规则:

    <type>6</type> <!-- exclude all, files -->
    <type>5</type> <!-- include only, files -->
    <type>13</type> <!-- include only, files and folders -->
    <type>26</type><!-- exclude all, folders, all children -->

    <arguments>1.0-name-matches-false-false-xyz</arguments> <!-- case sensitive=false, regular expression=false, something named=xyz -->
    <arguments>1.0-name-matches-true-false-EEE</arguments> <!-- case sensitive = true, regular expression = false, something named=EEE -->
    <arguments>1.0-name-matches-false-false-www</arguments> <!--case sensitive=false, regular expression = false, something named=www -->

一个 .project 过滤器部分,例如:

    <filteredResources>
        <filter>
            <id>1567020347706</id>
            <name></name>
            <type>6</type> <!-- exclude all, files -->
            <matcher>
                <id>org.eclipse.ui.ide.multiFilter</id>
                <arguments>1.0-name-matches-false-false-abc</arguments>
            </matcher>
        </filter>
        <filter>
            <id>1567020347708</id>
            <name></name>
            <type>5</type> <!-- include only, files -->
            <matcher>
                <id>org.eclipse.ui.ide.multiFilter</id>
                <arguments>1.0-name-matches-false-false-xyz</arguments> <!-- case sensitive=false, regular expression=false -->
            </matcher>
        </filter>
        <filter>
            <id>1567020347711</id>
            <name></name>
            <type>13</type>
            <matcher>
                <id>org.eclipse.ui.ide.multiFilter</id>
                <arguments>1.0-name-matches-false-false-mno</arguments>
            </matcher>
        </filter>
        <filter>
            <id>1567020347713</id>
            <name></name>
            <type>26</type><!-- exclude all, folders, all children -->
            <matcher>
                <id>org.eclipse.ui.ide.multiFilter</id>
                <arguments>1.0-name-matches-true-false-EEE</arguments> <!-- case sensitive = true, regular expression = false -->
            </matcher>
        </filter>
        <filter>
            <id>1567020347716</id>
            <name></name>
            <type>26</type> <!-- exclude all, folders, all children -->
            <matcher>
                <id>org.eclipse.ui.ide.multiFilter</id>
                <arguments>1.0-name-matches-false-false-www</arguments> <!-- case sensitive = false, regular expression = false -->
            </matcher>
        </filter>
    </filteredResources>