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 :

mvn eclipse:eclipse produit un fichier .project incompatible avec m2eclipse.


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut mvn eclipse:eclipse produit un fichier .project incompatible avec m2eclipse.
    Bonjour,

    Dans mon environnement Eclipse, j'utilise m2eclipse.

    Je crois n'avoir pas d'autre choix: Eclipse ne reconnait pas les projets Maven si celui-ci n'est pas installé. Il y a peut être d'autres plugins possibles à associer avec Eclipse ou bien Eclipse sait déjà prendre en charge seul les projets Maven sans qu'un plugin ne soit plus nécessaire dans sa version 3.7 - Indigo, mais je ne le sais pas.

    J'ai paramétré mes projets, j'ai fait de l'update configuration souvent, et puis je me suis rendu compte que la javadoc des dépendances de mes projets n'était pas téléchargée. Pour programmer plus facilement, j'ai souhaité l'obtenir.

    Il m'a semblé que le moyen d'y arriver était de demander l'exécution de mvn eclipse:eclipse, un plugin maven qui sait les obtenir en spécifiant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <plugin>
    	<groupId>org.apache.maven.plugins</groupId>
    	<artifactId>maven-eclipse-plugin</artifactId>
            <version>2.9</version>
    	<configuration>
    		<downloadJavadocs>true</downloadJavadocs>
    	</configuration>
    </plugin>
    Mais voici comment ce plugin me change le .classpath et le .project de mes projets Eclipse:

    Il transforme ce .classpath (que m2eclipse avait mis au point):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
    	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
    	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
    	<classpathentry kind="output" path="target/classes"/>
    </classpath>
    en:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
      <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
      <classpathentry kind="output" path="target/classes"/>
      <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
      <classpathentry kind="var" path="M2_REPO/com/systemetest/surf/1.0.9/surf-1.0.9.jar"/>
      <classpathentry kind="var" path="M2_REPO/junit/junit/4.10/junit-4.10.jar">
        <attributes>
          <attribute value="jar:file:/C:/Users/Krimpatul/.m2/repository/junit/junit/4.10/junit-4.10-javadoc.jar!/" name="javadoc_location"/>
        </attributes>
      </classpathentry>
      <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
    </classpath>
    En un mot:
    il vire org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER pour mettre à la place tous les jars individuellement, qu'ils viennent de mes projets internes ou de dépendances d'API tierces parties. Puis, il associe au jars qu'il peut une javadoc location pour Eclipse, mais il la met en chemin absolu, ce qui est très embarrassant: un autre personne téléchargeant mon projet ne tirera aucun bénéfice des liens de javadoc qui seront, par principe, devenus faux pour elle!

    Il modifie également le fichier .project de ceci (créé par m2eclipse):
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?xml version="1.0" encoding="UTF-8"?>
    <projectDescription>
    	<name>TypesDonnees</name>
    	<comment></comment>
    	<projects>
    	</projects>
    	<buildSpec>
    		<buildCommand>
    			<name>org.eclipse.jdt.core.javabuilder</name>
    			<arguments>
    			</arguments>
    		</buildCommand>
    		<buildCommand>
    			<name>org.eclipse.wst.common.project.facet.core.builder</name>
    			<arguments>
    			</arguments>
    		</buildCommand>
    		<buildCommand>
    			<name>org.eclipse.m2e.core.maven2Builder</name>
    			<arguments>
    			</arguments>
    		</buildCommand>
    	</buildSpec>
    	<natures>
    		<nature>org.eclipse.m2e.core.maven2Nature</nature>
    		<nature>org.eclipse.jdt.core.javanature</nature>
    		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
    	</natures>
    </projectDescription>
    En ceci:
    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
    19
    20
    21
    22
    <?xml version="1.0" encoding="UTF-8"?>
    <projectDescription>
      <name>type.donnees</name>
      <comment>Type de données de base utilisées par l&apos;application. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
      <projects/>
      <buildSpec>
        <buildCommand>
          <name>org.eclipse.jdt.core.javabuilder</name>
        </buildCommand>
        <buildCommand>
          <name>org.eclipse.wst.common.project.facet.core.builder</name>
        </buildCommand>
        <buildCommand>
          <name>org.eclipse.m2e.core.maven2Builder</name>
        </buildCommand>
      </buildSpec>
      <natures>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
      </natures>
    </projectDescription>
    avec cette mention dans son commentaire:
    "NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.".

    Je suis très intrigué. mvn eclipse:eclipse n'a t-il pas été fait pour Eclipse? Comment la communauté qui l'a bâti pouvait-elle ignorer que sur Eclipse nous étions obligés d'utiliser m2eclipse? Or alors, c'est qu'elle recommande l'emploi d'un autre plugin à intégrer à l'IDE eclipse que m2eclipse, un plugin qui serait compatible. Mais duquel s'agit-il?

    Ces deux plugins: l'un eclipse, l'autre maven, peuvent-ils s'accorder ensemble? Si je dois me résoudre à abandonner l'un, ce sera sans doute le plugin eclipse:eclipse que je retirerai.
    Comment vais-je retrouver et associer automatiquement toutes les javadocs de mes API tierces parties par le plugin m2eclipse?

    En vous remerciant,

    Grunt.

  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 : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Bonjour,

    L'intégration de Maven dans Eclipse est loin d'être chose aisée. Initiallement, mvn eclipse:eclipse était là pour générer les .project et .classpath (et quelques autres selon la nature du projet) afin d'ajouter le projet dans Eclipse comme Existing Eclipse project. Dans cette configuration, Maven est complètement ignoré par Eclipse, il s'en fiche.

    Puis est venu m2eclipse, qui n'est pas parfait, mais tâche d'intégrer Maven autant que faire se peut dans l'IDE. Là, un projet géré par m2eclipse est un projet Mavenisé, et c'est le plugin m2eclipse qui va se charger de la compilation du projet.

    Mais les 2 sont incompatibles. Si tu utilises mvn eclipse:eclipse, ton projet ne sera pas mavenisé. Si tu le "mavenises" (tu peux faire par ex. clic droit sur le projet puis configure > Convert to Maven project), alors les "spécificités" de mvn eclipse:eclipse seront écrasées, car m2eclipse modifiera les .project et .classpath...

    Bref, il faut utiliser soit l'un, soit l'autre.

    Pour en revenir à ton problème initial, ne serait-il pas plus simple de laisser faire m2eclipse, et de spécifier dans les options (Windows > Préférences > Maven > "Download Artifact JavaDoc") ?
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut
    Eh bien, voilà typiquement ce que je cherchais! Merci!
    Je vais essayer ça!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer un fichier .jar exécutable avec Eclipse
    Par Bloodscalp dans le forum Eclipse Java
    Réponses: 21
    Dernier message: 23/05/2009, 00h22
  2. PlugIn eclipse et acces au fichier
    Par titeuf92 dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 30/06/2006, 03h51
  3. Eclipse : ouverture de plusieurs fichiers
    Par menuge dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 15/05/2006, 10h54
  4. [Eclipse 2.1] des fichiers qui sautent dans WEB-INF/classes
    Par iubito dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 04/10/2004, 17h07
  5. [Eclipse 2.1.3]fichier main
    Par Invité dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 23/05/2004, 10h57

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