Eclipseプロジェクトからいくつかのフォルダーを除外するにはどうすればよいですか?


86

eclipseプロジェクトを既存のコードベースに追加していますが、一部のディレクトリをeclipseによる取得から除外する方法があるかどうか知りたいですか?その理由は、効率的に同期できるようにするために使用しているペアプログラミングプラグインのプロジェクトに存在できない巨大な「サードパーティ」ディレクトリがリポジトリにあるためです。

手がかりはありますか?


1
関連しているので、ここを参照してください:webtrafficexchange.com/…フォルダを右クリックし、[プロパティ]をクリックして、[派生]ボックスをオンにすると、実際にファイルをソースファイルとして保持し、ファイル検索から除外できます。
アンドリュー

回答:


15

フィルタはリソースを非表示にしますが、それらはまだプロジェクト内にあります。別の場所にプロジェクトを作成する場合は、プロジェクトに含めるフォルダーにリンクされたリソースを作成できます。

参考までに、リンクされたリソースの使用方法を詳しく説明した別の回答を投稿しました。


リッチ:これは私の最初のアプローチでしたが、私が見つけた問題は、プロジェクトに関連するリソースを作成できないことでした。パス全体がハードコーディングされていました。プロジェクトをSCMにコミットする必要があるため、これは問題でした。それを解決する方法はありますか?
jkp 2009

これをより詳細に説明する別の回答へのリンクを追加しました。パスで変数を使用できます。プロジェクトがワークスペースにある場合は、WORKSPACE_ROOT
リッチセラー

素晴らしい。私は変数について知っていましたが、以前にそれらを機能させることができませんでした。これで私は行ってもいいはずです。素晴らしい答え:まさに私が探していたものです。
jkp 2009

195

それを行う簡単な方法があります:

  1. プロジェクトエクスプローラツリーでプロジェクトフォルダを右クリックし、[プロパティ]に移動します。
  2. リソース->リソースフィルター。
  3. ファイル/フォルダーに必要な数の除外フィルターを追加します。

PSプロジェクトツリーが自動的に更新されない場合は、プロジェクトエクスプローラウィンドウでフォーカスを入力しているときにF5キーを押す必要がある場合があります。


8
これが答えになるはずです!これは、リンクされたフォルダーを使用するC ++プロジェクトでも機能します。
void.pointer 2014

.projectファイルに書き込まれる内容を投稿していただけますか?私のEclipseはその変更をこのファイルに保存できないので、手動で書き込む必要があります。
男2016年

2
この回答に感謝しますが、ビルドからそれらを除外する方法はありますが、それでもそれらを監視可能にしてプロジェクトエクスプローラーに表示させることはできますか?
Movsar Bekaev 2016

6

はい、プロジェクトにカスタムフィルターを配置できます。プロジェクトエクスプローラービューでは、[パッケージエクスプローラー]タブの横にあるパネルの上部近くに、白い下向きの矢印が表示されているはずです。それをクリックして、[フィルター]に移動します。そこから、[名前フィルターパターン]の横のチェックボックスをオンにして、検出したくない特定のフォルダーパターンを指定できます。この場合、サードパーティのライブラリの名前を付けます。


1
アルベルト:ポインタをありがとう、私はこれについてまったく知りませんでした。唯一の問題は、フォルダ全体を除外する方法がまったく見つからないことです。そしてRichが指摘するように、それらはまだプロジェクトにあり、それは私たちにとって問題になるでしょう(プラグインはそれらを同期しようとすると思います)。
jkp 2009

これが言語に依存しない唯一の答えであるように私には思えます。他の手順は、私のPythonベースのプロジェクトでは利用できませんでした。
dbn 2012年

Eclipseは確かにフォルダーを非表示にしますが、それらはビルドに含まれています
Amir Uval 2013年

1

私がいつもやってきた方法は、プロジェクトをピアとして明示的にチェックアウトすることです。例えば:

〜/ myworkspace / goodproject
〜/ myworkspace / 3rdparty

次に、「goodproject」のみをEclipseにインポートします。「3rdparty」がgoodprojectのサブディレクトリである場合、それを偽造することができます...たとえば、svnプロジェクトが次のようになっているとします。

事業/
       src /
          メイン/
          サードパーティ/

プロジェクト/ src /をローカルで作成してから、「メイン」ディレクトリのみをチェックアウトし、Eclipseをパッケージ化されたバージョンに依存させることができます(たとえば、プロジェクトがjavaの場合はjarをポイントします)。


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

たとえば、1つの.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>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.