Come posso escludere alcune cartelle dal mio progetto Eclipse?


86

Sto aggiungendo un progetto eclipse alla nostra base di codice esistente e mi piacerebbe sapere se esiste un modo per escludere alcune directory dall'essere raccolte da eclipse? Il motivo è che abbiamo un'enorme directory "di terze parti" nel nostro repository che non può essere presente nel progetto per il plug -in di programmazione in coppia che stiamo utilizzando per essere in grado di sincronizzarsi in modo efficiente.

Qualche indizio?


1
Dal momento che è correlato, vedere qui: webtrafficexchange.com/… Facendo clic con il pulsante destro del mouse su una cartella, facendo clic su Proprietà e selezionando la casella "Derivato", è possibile mantenere i file come file di origine ma quindi escluderli dalle ricerche di file!
Andrew

Risposte:


15

I filtri nascondono le risorse dalla visualizzazione, ma sono ancora nel progetto. Se crei un progetto in un'altra posizione, puoi creare risorse collegate alle cartelle che desideri includere nel tuo progetto.

Per riferimento ho pubblicato un'altra risposta che descrive come utilizzare le risorse collegate in modo più dettagliato .


Ricco: questo era il mio approccio iniziale, ma il problema che ho riscontrato è stato che non potevo creare le risorse relative al progetto: l'intero percorso era hard-coded. Questo è stato un problema perché ho bisogno di impegnare il progetto nel nostro SCM. Qualche idea su come risolverlo?
jkp

Ho aggiunto un collegamento a un'altra risposta che lo descrive in modo più dettagliato. Puoi usare una variabile sui percorsi, se i progetti sono nell'area di lavoro, puoi usare WORKSPACE_ROOT
Rich Seller

Fantastico. Conoscevo le variabili ma non sono riuscito a farle funzionare prima. Con questo dovrei essere a posto. Ottima risposta: proprio quello che stavo cercando.
jkp

195

C'è un modo diretto per farlo:

  1. Fare clic con il pulsante destro del mouse su una cartella di progetto nella struttura ad albero di Project Explorer e andare su "Proprietà".
  2. Risorsa -> Filtri risorsa.
  3. Aggiungi tutti i filtri di esclusione per file / cartelle che desideri.

PS Se l'albero del progetto non viene aggiornato automaticamente, potrebbe essere necessario premere F5 mentre è attivo l'input nella finestra Esplora progetti.


8
Questa dovrebbe essere la risposta! Funziona anche per i progetti C ++ che utilizzano cartelle collegate.
void

Potete per favore postare ciò che verrà scritto nel file .project? Il mio eclipse non è in grado di salvare la modifica in questo file, quindi dovrò scriverlo manualmente.
amico,

2
Grazie per questa risposta, eppure, c'è un modo per escluderli dalla build, ma lasciarli comunque essere osservabili e mostrati in Project Explorer?
Movsar Bekaev,

6

Sì, puoi inserire un filtro personalizzato nel tuo progetto. Nella visualizzazione Esplora progetti, dovrebbe essere presente una freccia bianca rivolta verso il basso vicino alla parte superiore del pannello vicino alla scheda Esplora pacchetti. Fare clic su di esso e andare su Filtri. Da lì, puoi specificare determinati modelli di cartelle che non desideri vengano rilevati selezionando la casella accanto a Modelli di filtro del nome. In questo caso, metterei il nome della libreria di terze parti.


1
Alberto: grazie per il suggerimento, non lo sapevo affatto. L'unico problema è che non riesco a trovare un modo per escludere un'intera cartella. E come fa notare Rich, saranno ancora nel progetto, il che sarà un problema per noi (immagino che il plugin proverà a sincronizzarli).
jkp

Mi sembra che questa sia l'unica risposta indipendente dalla lingua. Le altre istruzioni non erano disponibili nel mio progetto basato su Python.
dbn

Eclipse nasconde effettivamente le cartelle, ma sono ancora incluse nella build
Amir Uval

1

Il modo in cui l'ho sempre fatto è controllare esplicitamente i progetti come colleghi. per esempio:

~ / myworkspace / goodproject
~ / myworkspace / 3rdparty

quindi importa solo "goodproject" in eclipse. Se "3rdparty" è una sottodirectory di goodproject, puoi falsificarlo ... Supponiamo, ad esempio, che il tuo progetto svn abbia questo aspetto:

progetto/
       src /
          principale/
          Terze parti /

Puoi creare localmente il progetto / src / quindi controllare solo la directory "principale" e fare in modo che eclipse si basi su una versione pacchettizzata (ad esempio, punta al jar se il tuo progetto è java).


1

Se vuoi aggiungere filtri direttamente all'interno del file .project , queste sono alcune regole:

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

Una sezione del filtro .project ad esempio:

    <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>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.