Bagaimana cara mengecualikan beberapa folder dari proyek Eclipse saya?

86

Saya menambahkan proyek gerhana ke basis kode kami yang ada, dan saya ingin tahu apakah ada cara untuk mengecualikan beberapa direktori agar tidak diambil oleh gerhana sama sekali? Alasannya adalah karena kami memiliki direktori "pihak ketiga" yang sangat besar di repositori kami yang tidak dapat hadir dalam proyek untuk plugin pemrograman berpasangan yang kami gunakan agar dapat menyinkronkan secara efisien.

Ada petunjuk?

jkp
sumber
1
Karena terkait, lihat di sini: webtrafficexchange.com/… Dengan mengklik kanan folder, mengklik Properties, dan mencentang kotak "Derived", Anda sebenarnya dapat menyimpan file Anda sebagai file sumber tetapi kemudian mengecualikannya dari pencarian file!
Andrew

Jawaban:

16

Filter akan menyembunyikan sumber daya dari tampilan, tetapi mereka masih dalam proyek. Jika Anda membuat proyek di lokasi lain, Anda dapat membuat sumber daya tertaut ke folder yang ingin Anda sertakan dalam proyek Anda.

Untuk referensi, saya memposting jawaban lain yang menjelaskan cara menggunakan sumber daya terkait secara lebih rinci .

Penjual Kaya
sumber
Kaya: ini adalah pendekatan awal saya, tetapi masalah yang saya temukan adalah saya tidak dapat membuat sumber daya yang terkait dengan proyek: seluruh jalur telah di-hardcode. Ini adalah masalah karena saya perlu menyerahkan proyek tersebut ke SCM kami. Ada ide bagaimana mengatasinya?
jkp
Saya menambahkan tautan ke jawaban lain yang menjelaskan ini secara lebih rinci. Anda dapat menggunakan variabel di jalur, jika proyek berada di ruang kerja, Anda dapat menggunakan WORKSPACE_ROOT
Penjual Kaya
Fantastis. Saya tahu tentang variabel tetapi saya tidak bisa membuatnya bekerja lebih awal. Dengan ini saya harus pergi. Jawaban yang bagus: apa yang saya cari.
jkp
197

Ada cara langsung untuk melakukannya:

  1. Klik kanan folder proyek di pohon Project Explorer dan masuk ke "Properties".
  2. Sumber Daya -> Filter Sumber Daya.
  3. Tambahkan filter pengecualian untuk file / folder sebanyak yang Anda suka.

PS Jika pohon proyek Anda tidak diperbarui secara otomatis, Anda mungkin harus menekan F5 saat memiliki fokus input di jendela Project Explorer.

Gleb Varenov
sumber
8
Ini harus menjadi jawabannya! Ini juga berfungsi untuk proyek C ++ menggunakan folder tertaut.
void.pointer
Bisakah Anda memposting apa yang akan ditulis ke dalam file .project? Gerhana saya tidak dapat menyimpan perubahan itu ke file ini, jadi saya harus menulisnya secara manual.
Bung
2
Terima kasih atas jawaban ini, namun, Adakah cara untuk mengecualikannya dari build, tetapi tetap membiarkannya tersedia dan ditampilkan di Project Explorer?
Movsar Bekaev
6

Ya, Anda dapat menempatkan filter khusus pada proyek Anda. Dalam tampilan penjelajah proyek Anda, seharusnya ada panah putih menunjuk ke bawah di dekat bagian atas panel oleh tab Penjelajah Paket. Klik itu, dan pergi ke Filter. Dari sana, Anda dapat menentukan pola folder tertentu yang tidak ingin Anda deteksi dengan mencentang kotak di sebelah Pola Filter Nama. Dalam hal ini, saya akan memasukkan nama perpustakaan pihak ke-3.

AlbertoPL
sumber
1
Alberto: terima kasih atas petunjuknya, saya sama sekali tidak tahu tentang ini. Satu-satunya masalah adalah saya tidak dapat menemukan cara untuk mengecualikan seluruh folder sama sekali. Dan seperti yang ditunjukkan oleh Rich, mereka masih dalam proyek, yang akan menjadi masalah bagi kami (saya kira plugin akan mencoba menyinkronkannya).
jkp
Menurut saya, ini adalah satu-satunya jawaban yang tidak bergantung pada bahasa. Instruksi lain tidak tersedia dalam proyek berbasis Python saya.
dbn
Eclipse memang menyembunyikan folder, tetapi masih termasuk dalam build
Amir Uval
1

Cara saya selalu melakukannya adalah dengan secara eksplisit memeriksa proyek sebagai rekan. misalnya:

~ / myworkspace / goodproject
~ / myworkspace / 3rdparty

lalu impor hanya "proyek bagus" ke dalam gerhana. Jika "pihak ketiga" adalah subdirektori dari goodproject, Anda dapat memalsukannya ... Katakanlah misalnya proyek svn Anda terlihat seperti ini:

proyek/
       src /
          utama/
          Pihak ke-3/

Anda dapat membuat project / src / secara lokal kemudian hanya melakukan checkout pada direktori "main", dan meminta eclipse bergantung pada versi yang sudah dikemas (misalnya, arahkan ke jar jika project Anda adalah java).

inanutshellus
sumber
1

Jika Anda ingin menambahkan filter langsung ke dalam file .project , berikut beberapa aturannya:

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

Satu bagian filter .project misalnya:

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