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:
Mais voici comment ce plugin me change le .classpath et le .project de mes projets Eclipse:
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>
Il transforme ce .classpath (que m2eclipse avait mis au point):
en:
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 un mot:
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>
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):
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
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>
avec cette mention dans son commentaire:
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'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>
"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.









Répondre avec citation


Partager