90 votes

Comment exclure certains dossiers de mon projet Eclipse ?

Je suis en train d'ajouter un projet eclipse à notre base de code existante, et je voudrais savoir s'il existe un moyen d'exclure certains répertoires d'être ramassés par eclipse du tout ? La raison est que nous avons un énorme répertoire "tiers" dans notre dépôt qui ne peut pas être présent dans le projet pour l'application Programmation par paires que nous utilisons pour pouvoir nous synchroniser efficacement.

Des indices ?

1 votes

Puisque c'est lié, voyez ici : webtrafficexchange.com/ En cliquant avec le bouton droit de la souris sur un dossier, en cliquant sur Propriétés et en cochant la case "dérivé", vous pouvez en fait conserver vos fichiers comme fichiers sources, mais les exclure des recherches de fichiers !

204voto

Anthony Cerbic Points 973

Il y a un moyen direct de le faire :

  1. Cliquez avec le bouton droit de la souris sur un dossier de projet dans l'arborescence de l'explorateur de projets et allez dans "Propriétés".
  2. Ressource -> Filtres de ressources.
  3. Ajoutez autant de filtres d'exclusion pour les fichiers/dossiers que vous le souhaitez.

P.S. Si votre arbre de projet n'est pas mis à jour automatiquement, vous pouvez appuyer sur F5 tout en ayant le focus de la saisie dans la fenêtre de l'explorateur de projet.

8 votes

Ceci devrait être la réponse ! Cela fonctionne également pour les projets C++ utilisant des dossiers liés.

0 votes

Pouvez-vous afficher ce qui sera écrit dans le fichier .project ? Mon eclipse n'est pas capable de sauvegarder cette modification dans ce fichier, je vais donc devoir l'écrire manuellement.

3 votes

Merci pour cette réponse, et pourtant, y a-t-il un moyen de les exclure de la construction, mais de les laisser être observables et affichés dans l'explorateur de projet ?

18voto

Rich Seller Points 46052

Les filtres masquent les ressources, mais elles sont toujours présentes dans le projet. Si vous créez un projet dans un autre emplacement, vous pouvez créer des ressources liées aux dossiers que vous voulez inclure dans votre projet.

Pour référence, j'ai posté une autre réponse qui décrit comment utiliser les ressources liées de manière plus détaillée .

0 votes

Rich : c'était mon approche initiale, mais le problème que j'ai rencontré était que je ne pouvais pas rendre les ressources relatives au projet : le chemin entier était codé en dur. C'était un problème parce que je dois livrer le projet à notre SCM. Une idée pour résoudre ce problème ?

0 votes

J'ai ajouté un lien vers une autre réponse qui décrit cela plus en détail. Vous pouvez utiliser une variable sur les chemins, si les projets sont dans l'espace de travail, vous pouvez utiliser WORKSPACE_ROOT.

0 votes

Fantastique. Je connaissais les variables mais je n'arrivais pas à les faire fonctionner avant. Avec cela, je devrais être prêt à partir. Excellente réponse : exactement ce que je cherchais.

6voto

AlbertoPL Points 8644

Oui, vous pouvez placer un filtre personnalisé sur votre projet. Dans la vue de l'explorateur de projet, une flèche blanche pointant vers le bas doit se trouver en haut du panneau, près de l'onglet Explorateur de paquets. Cliquez dessus, puis allez dans Filtres. À partir de là, vous pouvez spécifier certains modèles de dossiers que vous ne voulez pas détecter en cochant la case située à côté de Name Filter Patterns. Dans ce cas, je mettrais le nom de la bibliothèque tierce.

1 votes

Alberto : merci pour le pointeur, je ne connaissais pas du tout cette possibilité. Le seul problème est que je ne trouve pas de moyen d'exclure un dossier entier. Et comme Rich le fait remarquer, ils seront toujours dans le projet, ce qui sera un problème pour nous (je suppose que le plugin va essayer de les synchroniser).

0 votes

Il me semble que c'est la seule réponse qui soit indépendante de la langue. Les autres instructions n'étaient pas disponibles dans mon projet basé sur Python.

0 votes

Eclipse cache en effet les dossiers, mais ils sont toujours inclus dans la construction.

1voto

Gabriel Points 1565

La façon dont j'ai toujours procédé est de vérifier explicitement les projets en tant que pairs, par exemple

~/myworkspace/goodproject
~/myworkspace/3rdparty

alors importez seulement "goodproject" dans eclipse. Si "3rdparty" est un sous-répertoire de goodproject, vous pouvez le simuler... Disons par exemple que votre projet svn ressemble à ceci :

project/
       src/
          main/
          3rdparty/

Vous pouvez créer localement project/src/ puis extraire uniquement le répertoire "main", et faire en sorte qu'eclipse s'appuie sur une version packagée (par exemple, pointer vers le jar si votre projet est java).

1voto

danilo Points 636

Si vous voulez ajouter des filtres directement dans .projet fichier, voici quelques règles :

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

Un .projet section filtre par exemple :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X