IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Maven Java Discussion :

Confusion des répertoires sources et ressources dans eclipse


Sujet :

Maven Java

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 237
    Points : 185
    Points
    185
    Par défaut Confusion des répertoires sources et ressources dans eclipse
    Bonjour,

    Je suis sous Maven 3.3 et avec Eclipse Helios et plugin m2eclipse 0.12.
    J'ai une hiérarchie de répertoire qui ne respecte pas les conventions maven et des resources (fichier properties) se trouvent dans le répertoire "src"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    		<resources>
    			<resource>
    				<directory>${racine}/properties</directory>
    			</resource>
    			<resource>
    				<directory>${racine}/src</directory>
    				<includes>
    					<include>**/*.properties</include>
    					<include>**/*.xml</include>
    				</includes>
    			</resource>
    ...
    					<resource>
    						<directory>${racine}/injecteur</directory>
    						<includes>
    							<include>**/*.csv</include>
    						</includes>
    					</resource>
    1. Eclipse considère dorénavant le répertoire "src" comme un répertoire resource et à chaque enregistrement d'un fichier se trouvant dans le répertoire "src", éclipse fait un déploiement de toutes les ressources.
    2. Aussi le répertoire "injecteur" est ajouté au build path (ce que l'on ne souhaite pas)


    Pour info, on a projet de revenir aux conventions maven, mais on attend une migration vers GIT pour conserver l'historique de nos fichiers (on est sous CVS).

    Avez-vous déjà eu le problème ?
    Savez-vous ce que l'on peut faire ?

    En vous remerciant.
    Boutss

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Hello,

    Soit vous êtes super en avance, soit vous utilisez Maven 3.0.3 et non 3.3

    Concernant le "problème". En fait, c'est le comportement "normal" de l'importation des projets Maven dans Eclipse. Que vous respectiez ou non les conventions de Maven, que vous utilisiez m2eclipse ou non, ça ne change rien.

    Lorsque l'on inclue son projet dans Maven, les répertoires de sources et de ressources sont considérés comme des source path pour Eclipse, afin d'être intégrés directement dans le classpath.

    Du coup, en effet, Eclipse va reconstruire le projet dès que des modifications sont faites dans ces fichiers.

    Peut-être faudrait-il trouver une solution pour qu'un tel redéploiement ne vous pose plus de problème, non ? Quels sont les conséquence de cela concrètement ?

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 237
    Points : 185
    Points
    185
    Par défaut
    Merci de la réponse.
    Effectivement c'est bien 3.0.3, oupss

    En fait pour le point 2, c'est qu'éclipse ne prends pas en compte les "include/exclude" et donc il importe toutes les classes java du répertoire "injecteur" alors que l'on ne souhaiterait récupérer que les fichiers csv.

    On va tenter de spécifier ces includes/exclude dans le plugin "maven.compiler.plugin", à priori, j'ai entendu dire qu'éclipse les prenait en compte via ce plugin.

    Concernant le premier point (logique le 1er après le 2ème ), c'est un problème de publication constante des resources.
    C'est à dire que comme on a spécifié le répertoire "src" comme ressource, avec include, mais ressource quand même, à chaque modification d'une classe de src, il publie toutes les ressources ~2000 fichiers.
    Par contre, si je modifie une classe de test qui se trouve dans le répertoire "test" il ne republie pas toute les ressources !

  4. #4
    Nouveau membre du Club Avatar de greaumaxime
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Points : 36
    Points
    36
    Par défaut
    Bonjour,

    Il faut bien différencier la configuration pour Maven et celle pour Eclipse.

    La configuration du pom.xml avec votre arborescence de dossiers spépcifiques doit permettre aux commandes Apache Maven de fonctionner correctement (c'est-à-dire de générer correctement vos artefacts JAR, WAR...) independamment de l'éditeur (Eclipse, Netbeans...).

    Ensuite lors d'un checkout avec le plugin m2eclipse, celui-ci génère les fichiers de configuration propre à Eclipse (fichiers .project et .classpath) pour les projets Maven "standards". Je ne suis pas sûr que le plugin m2eclipse génère correctement ces 2 fichiers dans votre cas.

    Ainsi puisque votre conf est temporaire, le plus simple (à mon avis) est de réaliser "à la main" votre fichier .classpath (fichier de conf eclipse) à la racine du projet Eclipse et de le commiter sous CVS pour que chaque développeur puisse avoir la configuration correcte lors de la récupération du projet.

    Cette méthode n'est pas "très propre" puisque les fichiers de configuration des IDE ne doivent pas être présents dans le gestionnaire de sources du projet. Il faudra donc le supprimer lors de votre passage à Git :-)

    Cordialement.

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 237
    Points : 185
    Points
    185
    Par défaut
    Merci de la réponse.
    Effectivement, c'est une solution. Mais nous venons de passer sous GIT.

Discussions similaires

  1. [sh] Lister des répertoires écrits "en dur" dans des fichiers
    Par melouze dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 02/06/2014, 17h14
  2. Filtrer des ressources dans un projet Eclipse
    Par romaintaz dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 06/08/2009, 11h22
  3. Réponses: 1
    Dernier message: 17/03/2009, 17h00
  4. Créer des instances de classes EMF dans Eclipse avec une jolie IHM
    Par obernard dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 24/02/2009, 19h21
  5. Réponses: 6
    Dernier message: 31/01/2005, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo