Comment exclure un dossier qui génère des avertissements / erreurs dans un projet Eclipse?

D’accord. J’en ai marre de ce problème. Cela doit avoir une solution facile, j’en suis sûr !! J’espère que SO pourra m’aider à m’en débarrasser une fois pour toutes!

Question

Comment pouvons-nous obtenir que Eclipse arrête d’essayer de traiter / comstackr tous les fichiers dans un répertoire de projet particulier? Le but est d’éviter les erreurs / avertissements dans la vue des problèmes s’ils concernent un élément de ce dossier ou de ses sous-dossiers.

Contexte

Nous exécutons Eclipse 3.6 et le plugin m2eclipse v0.10.2.20100623 gère notre autobuild. Pour des raisons indépendantes de ma volonté, nous avons toute la dissortingbution BlazeDS dans notre répertoire de projet SVN sous src/main/resources/blazeds . Essentiellement, ce répertoire contient une dissortingbution vanilla de Blazeds en cours d’exécution à laquelle tous nos fichiers de configuration et de projet sont ajoutés lorsque nous déployons sur notre serveur via SCP.

Ainsi, lorsque nous exécutons deploy, cette version de tomcat est copiée sur le serveur et notre projet est placé à l’intérieur. Tomcat et notre application RIA fonctionnent et tout va bien.

Le problème est que Eclipse essaie de comstackr tout sous src/main/resources/blazeds lors de l’exécution d’AutoBuild et cela génère environ 300 erreurs / avertissements dans notre vue de problème. Donc, quand une erreur réelle survient, elle se perd dans le bruit.

Les erreurs proviennent du code dans /blazeds/tomcat/webapps/samples/testdrive-datapush ainsi que des webapps exemple testdrive-httpservice , traderdesktop . Ils ont un code source dépendant qui ne se trouve pas sur le chemin de classe et les fichiers JAR qui ne sont pas inclus dans les bibliothèques.

Solutions essayées en échec

J’essaie de pousser la solution appropriée: supprimer complètement les échantillons et aussi tirer le meilleur parti de notre contrôle de version. Cela n’arrive pas de sitôt.

J’ai suivi la réponse SO ici mais ce n’est qu’une solution très temporaire. J’ai essayé d’append des exclusions partout où je peux penser et les autres membres de mon équipe ont fait la même chose. J’ai supprimé src/main/resources tant que répertoire source (dans le blazeds préférences> Java Build Path> Onglet Source). J’ai essayé toutes les permutations de blazeds et ** comme dans *blazeds* , **/blazeds/** , etc.

J’ai même essayé d’inclure les bibliothèques et les fichiers sources dont le compilateur se plaint, mais je ne pouvais pas le faire correctement sans trop modifier notre configuration de projet.

Résumé

Cela doit être simple. Quelle est la manière conventionnelle d’exclure un dossier qui génère des avertissements / erreurs dans un projet eclipse?


Mise à jour n ° 1:
la solution de gedim ci-dessous est décent mais il
1) ne dégage pas les X rouges du projet
2) est un changement que tout le monde sur notre équipe doit faire, manuellement
(c.-à-d. qu’il ne se trouve pas dans un fichier de propriétés du projet; par conséquent, il n’est pas archivé dans subversion)

J’espère qu’il y a un moyen de résoudre le problème en disant à Eclipse que ce répertoire ne contient pas
éléments à comstackr / valider. Un tel changement serait probablement affiché dans l’un des fichiers de configuration du projet.


Mise à jour n ° 2:

La photo ci-dessous montre les X rouges que j’essaie de dégager et que
Build Path > Exclude
n’est pas une option …

Red X ne partira pas

Vous pouvez utiliser l’ Configure Contents... dans le menu du panneau Problems . Vous pouvez y créer une nouvelle configuration et définir la scope sur On Working Set: Cliquez sur Select... et créez un nouvel ensemble de travail qui exclut les dossiers que vous ne voulez pas.

J’ai rencontré un problème similaire et l’ai résolu en déplaçant le dossier dans mon dossier de projet. Je suis ensuite allé à:

  1. Projet> Propriétés> Ressource> Filtres de ressources> Ajouter …
  2. Définir le type de filtre = Tout exclure .
  3. Définir S’applique à = Dossiers .
  4. Définir les atsortingbuts de fichier et de dossier = {Nom, correspond à, }

Il existe une demande de fonctionnalité Eclipse pour ignorer les avertissements des dossiers source spécifiés. Plusieurs correctifs ont été publiés sur le fil de commentaires qui fournissent des implémentations de la fonctionnalité. Il semble qu’un dernier patch s’approche de l’étape de révision pour être inclus dans une prochaine version.

Mise à jour 19/06/2012 : Eclipse Juno 4.2M6 prend en charge ignorer les problèmes pour un dossier source particulier. La fonctionnalité est disponible dans la boîte de dialog Java Build Path. Voir la note de publication .

Si vous voulez vraiment exclure certaines classes / paquets d’autobuild, vous pouvez simplement faire un clic droit dessus et sélectionner Build Path -> Exclude

texte alt

Configurez votre projet (Projet / Propriétés / Java Build Path / Source) pour avoir, au lieu du dossier src de niveau supérieur contenant des exclusions, une liste des dossiers que vous souhaitez comstackr.

En supposant Eclipse Helios, étape par étape:

  • Désactiver la création automatique (projet / construction automatique).
  • Commencez avec le vide.
  • Supprimez les erreurs en faisant un clic droit comme dans le lien (juste pour être sûr).
  • Ajouter des dossiers source authentiques 1 par 1 (Projet / Propriétés / Chemin de génération Java / Dossier Source / Ajouter)
  • Faites une construction explicite (Projet / Projet de construction).

Si cela fonctionne, vous devriez pouvoir réactiver Autobuild. Si ce n’est pas le cas, il se passe quelque chose d’étrange. Le projet n’utilise peut-être pas le Java Builder standard, mais quelque chose comme Ant Builder (Project / Properties / Builders).

Accédez à Java Build Path -> Source -> Ajouter un dossier

Choisissez les bons dossiers qui doivent faire partie de Build Path

Dans la capture d’écran ci-dessus, src / main / resources doit être supprimé de la construction car il en résulte une erreur de compilation [ID de package incorrect]. Par conséquent, incluez le dossier jusqu’à src / main / resources.

J’ai essayé Build Path -> Exclude. Cela ne résout pas le problème. c’est-à-dire que, bien que la marque RedX soit effacée de l’Eclipse, ce ne seront plus de bons projets Java. Ie utilisateur peut ne pas être capable d’exécuter des cas de test / débogage JUnit etc.

Mais en incluant les bons dossiers, nous pouvons continuer avec Java Project.

Comme les fichiers dans le dossier de ressources changent rarement, je suggère de les placer dans un deuxième projet (où vous pouvez définir différentes options d’avertissement), puis d’y accéder via un chemin relatif (comme ${basedir}/../special-tomcat ) .

La meilleure approche consiste à utiliser l’option Inclusion et modèles d’exclusion dans le chemin de génération Java.
Par exemple, si vous souhaitez exclure un projet en cours de génération automatique:
1- Accédez à ses Propriétés-> Chemin de construction Java-> Source.
2- Développez le dossier dans la zone “Dossiers source sur le chemin de construction:”
3- Sélectionnez Exclure-> Modifier
4- Dans les modèles d’exclusion, ajoutez **
Remarque: pour plus d’informations sur ces modèles: Modèles d’ inclusion et d’exclusion