Як я можу виключити деякі папки з мого проекту Eclipse?


86

Я додаю проект eclipse до нашої існуючої кодової бази, і я хотів би знати, чи є спосіб виключити деякі каталоги з того, що eclipse взагалі не отримає їх? Причина полягає в тому, що в нашому сховищі є величезний "сторонній" каталог, який не може бути присутній у проекті для плагіна парного програмування, який ми використовуємо для ефективної синхронізації.

Будь-які підказки?


1
Оскільки це пов’язано, дивіться тут: webtrafficexchange.com/... Клацнувши правою кнопкою миші папку, клацнувши Властивості та встановивши прапорець «Виведене», ви фактично можете зберігати свої файли як вихідні, але потім виключати їх із пошуку файлів!
Ендрю

Відповіді:


15

Фільтри приховують ресурси від очей, але вони все ще перебувають у проекті. Якщо ви створюєте проект в іншому місці, ви можете створити пов'язані ресурси з папками, які ви хочете включити у свій проект.

Для довідки я опублікував ще одну відповідь, де більш докладно описується, як використовувати пов'язані ресурси .


Багатий: це був мій початковий підхід, але проблема, яку я виявив, полягала в тому, що я не міг зробити ресурси відносно проекту: весь шлях був жорстко закодований. Це було проблемою, тому що мені потрібно передати проект нашій СКМ. Будь-які ідеї, як це вирішити?
jkp,

Я додав посилання на іншу відповідь, яка описує це більш докладно. Ви можете використовувати змінну на шляхах, якщо проекти знаходяться в робочій області, ви можете використовувати WORKSPACE_ROOT
Rich Seller

Фантастично. Я знав про змінні, але не міг змусити їх працювати раніше. З цим я мав би добре піти. Чудова відповідь: саме те, що я шукав.
jkp,

195

Існує прямий спосіб зробити це:

  1. Клацніть правою кнопкою миші папку проекту в дереві Провідника проектів і перейдіть до "Властивості".
  2. Ресурс -> Фільтри ресурсів.
  3. Додайте скільки завгодно фільтрів виключення для файлів / папок.

PS Якщо дерево проекту не оновлюється автоматично, можливо, доведеться натиснути F5, маючи фокус введення у вікні Провідника проекту.


8
Це має бути відповідь! Це також працює для проектів на C ++ із використанням пов'язаних папок.
void.pointer

Чи можете ви розмістити те, що буде записано у файл .project? My eclipse не може зберегти цю зміну у цьому файлі, тому мені доведеться написати його вручну.
чувак

2
Дякуємо за цю відповідь, та все ж, чи є спосіб виключити їх із збірки, але все ж дозволити їм бути спостережуваними та показаними у Провіднику проектів?
Мовсар Бекаєв

6

Так, ви можете розмістити власний фільтр у своєму проекті. У поданні провідника проекту біля верхньої частини панелі на вкладці Провідник пакетів повинна бути біла стрілка, спрямована вниз. Клацніть на ньому та перейдіть до Фільтри. Звідти ви можете вказати певні шаблони папок, які ви не хочете виявляти, встановивши прапорець поруч із Шаблони фільтрів імен. У цьому випадку я б вказав назву бібліотеки третьої сторони.


1
Альберто: дякую за вказівник, я взагалі про це не знав. Проблема лише в тому, що я взагалі не можу знайти спосіб виключити цілу папку. І як зазначає Річ, вони все одно будуть у проекті, що для нас буде проблемою (гадаю, плагін спробує їх синхронізувати).
jkp,

Мені здається, що це єдина відповідь, яка не залежить від мови. Інші інструкції були недоступні в моєму проекті на основі Python.
dbn

Eclipse справді приховує папки, але вони все ще включені в збірку
Amir Uval

1

Я завжди це робив, це явно перевіряти проекти як однолітки. наприклад:

~ / myworkspace / goodproject
~ / myworkspace / 3rdparty

тоді імпортуйте лише "goodproject" у затемнення. Якщо "3rdparty" - це підкаталог goodproject, ви можете його підробити ... Скажімо, наприклад, ваш проект svn виглядає так:

проект /
       src /
          Головна /
          Третя сторона /

Ви можете локально створити project / src /, а потім перевірити лише "головний" каталог, і eclipse покладається на упаковану версію (наприклад, вкажіть на jar, якщо ваш проект Java).


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>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.