Eclipse projemden bazı klasörleri nasıl dışlayabilirim?


86

Mevcut kod tabanımıza bir tutulma projesi ekliyorum ve bazı dizinlerin tutulma tarafından alınmasını engellemenin bir yolu olup olmadığını bilmek istiyorum. Bunun nedeni, depomuzda verimli bir şekilde senkronize edebilmek için kullandığımız çift ​​programlama eklentisi için projede bulunamayan devasa bir "üçüncü taraf" dizinine sahip olmamızdır.

Herhangi bir ipucu?


1
İlişkili olduğu için buraya bakın: webtrafficexchange.com/… Bir klasöre sağ tıklayarak, Özellikler'e tıklayarak ve "Türetilmiş" kutusunu işaretleyerek, dosyalarınızı aslında kaynak dosyalar olarak tutabilir, ancak daha sonra onları dosya aramalarının dışında bırakabilirsiniz!
Andrew

Yanıtlar:


16

Filtreler, kaynakları görünümden gizleyecektir, ancak yine de projenin içindeler. Başka bir konumda bir proje oluşturursanız, projenize dahil etmek istediğiniz klasörlere bağlantılı kaynaklar oluşturabilirsiniz .

Referans olarak , bağlantılı kaynakların nasıl daha ayrıntılı olarak kullanılacağını açıklayan başka bir cevap yayınladım .


Rich: Bu benim ilk yaklaşımımdı, ancak bulduğum sorun, kaynakları projeye göre yapamamaktı: tüm yol sabit kodlanmıştı. Bu bir sorundu çünkü projeyi SCM'mize vermem gerekiyor. Bunu nasıl çözeceğine dair bir fikrin var mı?
jkp

Bunu daha ayrıntılı olarak açıklayan başka bir yanıta bağlantı ekledim. Yollarda bir değişken kullanabilirsiniz, eğer projeler çalışma alanı içindeyse, WORKSPACE_ROOT
Rich Seller

Fantastik. Değişkenleri biliyordum ama onları daha önce çalıştıramadım. Bununla gitmek için iyi olmalıyım. Harika cevap: tam da aradığım şey.
jkp

197

Bunu yapmanın doğrudan bir yolu var:

  1. Proje Gezgini ağacında bir proje klasörüne sağ tıklayın ve "Özellikler" e gidin.
  2. Kaynak -> Kaynak Filtreleri.
  3. Dosyalar / klasörler için istediğiniz kadar dışlama filtresi ekleyin.

PS Proje ağacınız otomatik olarak güncellenmezse, Proje Gezgini penceresinde giriş odağı varken F5 tuşuna basmanız gerekebilir.


8
Cevap bu olmalı! Bu, bağlantılı klasörler kullanan C ++ projeleri için de geçerlidir.
void.pointer

.Project dosyasına yazılacakları postalayabilir misiniz? Tutulmam bu değişikliği bu dosyaya kaydedemiyor, bu yüzden manuel olarak yazmam gerekecek.
dostum

2
Bu yanıt için teşekkürler ve yine de, onları derlemeden hariç tutmanın bir yolu var mı, ancak yine de bunların abartılı olmasına ve Proje Gezgini'nde gösterilmesine izin veriyor mu?
Movsar Bekaev

6

Evet, projenize özel bir filtre yerleştirebilirsiniz. Proje gezgini görünümünüzde, Paket Gezgini sekmesinin yanındaki panelin üst kısmına yakın bir yerde aşağı doğru beyaz bir ok olmalıdır. Tıklayın ve Filtreler'e gidin. Buradan, algılanmasını istemediğiniz belirli klasör modellerini Ad Filtresi Modellerinin yanındaki kutuyu işaretleyerek belirtebilirsiniz. Bu durumda 3. parti kitaplığın adını koyardım.


1
Alberto: İşaretçi için teşekkürler, bunu hiç bilmiyordum. Tek sorun, tüm bir klasörü dışlamanın bir yolunu bulamıyorum. Ve Rich'in işaret ettiği gibi, onlar hala projede olacaklar ve bu bizim için bir sorun olacak (sanırım eklenti onları senkronize etmeye çalışacak).
jkp

Bana öyle geliyor ki, dilden bağımsız olan tek cevap bu. Diğer talimatlar Python tabanlı projemde mevcut değildi.
dbn

Eclipse gerçekten klasörleri gizler, ancak yine de yapıya dahil edilirler
Amir Uval

1

Her zaman yaptığım yol, projeleri eşler olarak açıkça kontrol etmektir. Örneğin:

~ / myworkspace / goodproject
~ / myworkspace / 3rdparty

sonra sadece "iyi projeyi" tutulmaya aktarın. "3rdparty" goodproject'in bir alt diziniyse, sahte yapabilirsiniz ... Örneğin svn projenizin şuna benzediğini söyleyin:

proje /
       src /
          ana/
          3üncü parti/

Yerel olarak proje / src / oluşturabilir ve ardından yalnızca "ana" dizini kullanıma alabilir ve eclipse'in paketlenmiş bir sürüme güvenmesini sağlayabilirsiniz (örneğin, projeniz java ise kavanozu işaret edin).


1

Doğrudan .project dosyası içine filtre eklemek istiyorsanız , bazı kurallar şunlardır:

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

Örneğin bir .project filtre bölümü:

    <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>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.