Récupère les fichiers jar source attachés à Eclipse pour les dépendances gérées par Maven

J’utilise Maven (et l’intégration Maven Eclipse) pour gérer les dépendances de mes projets Java dans Eclipse. La fonctionnalité de téléchargement automatique des fichiers JAR à partir des référentiels Maven permet de gagner du temps. Malheureusement, il n’inclut pas la documentation de l’API et le code source.

Comment configurer Maven pour obtenir automatiquement les pièces jointes source et javadoc et les enregistrer correctement avec Eclipse?

Je suis sûr que le plug-in m2eclipse Maven pour Eclipse – l’inverse – peut le faire. Vous pouvez le configurer pour télécharger automatiquement les fichiers source et javadoc.

Pour ce faire, accédez à Fenêtre> Préférences> Maven et cochez les options “Télécharger les sources d’artefacts” et “Télécharger les artefacts JavaDoc”.

Screenshot of Maven Preferences

mvn eclipse:eclipse -DdownloadSources=true 

ou

 mvn eclipse:eclipse -DdownloadJavadocs=true 

ou vous pouvez append les deux drapeaux, comme le souligne Spencer K.

En outre, la partie =true n’est pas requirejse, vous pouvez donc utiliser

 mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs 

Les autres réponses à ce sujet, mais si vous voulez éviter de devoir vous souvenir des arguments de la ligne de commande, vous pouvez également append à la configuration downloadSources et téléchargerJavadocs dans la section maven-eclipse-plugin de votre pom.xml:

  ...    org.apache.maven.plugins maven-eclipse-plugin  true true ... other stuff ...     ...  

Je préfère ne pas placer les parameters de téléchargement source / Javadoc dans le fichier pom.xml du projet, car j’estime qu’il s’agit de préférences de l’utilisateur et non de propriétés du projet. Au lieu de cela, je les place dans un profil dans mon fichier settings.xml :

 < ?xml version="1.0" encoding="UTF-8"?>    sources-and-javadocs  true true     sources-and-javadocs   

Si les fichiers jar source se trouvent dans le référentiel local et que vous utilisez le support Eclipses maven, les sources sont automatiquement connectées. Vous pouvez exécuter mvn dependency:sources pour télécharger tous les jars sources pour un projet donné. Vous ne savez pas comment faire la même chose avec la documentation.

Faites un clic droit sur le projet -> maven -> télécharger les sources

Il y a aussi une question similaire qui répond à ceci et inclut des exemples de parameters de pom.

Si vous utilisez meclipse do

window -> maven -> Télécharger les sources d’artefacts (sélectionnez check)

(Si vous obtenez toujours la fenêtre de la source de la pièce jointe, cliquez sur le bouton Joindre le fichier et fermez la fenêtre de la source de la pièce jointe. La prochaine fois que vous essayez de voir la source, elle ouvrira la source correcte)

Surajz

J’ai essayé windows-> pref ..-> Maven Mais ça ne marchait pas. J’ai donc créé un nouveau chemin de classe avec la commande mvn eclipse: eclipse -DdownloadSources = true et rafraîchi l’espace de travail une fois. voila .. Des sources ont été attachées.

L’entrée du fichier source est disponible dans le chemin de classe. La nouvelle construction a donc résolu le problème …

Changer pom pour maven-eclipse-plugin pour inclure source / javadoc s’applique juste pour les nouvelles dépendances ajoutées à pom. Si nous devons appliquer pour des dépendances existantes, nous devons exécuter mvn dependency: sources. J’ai vérifié ceci.

Vérifier le source / javadoc de téléchargement dans la préférence Eclipse-Maven, parfois ne suffit pas. Si maven ne parvient pas à les télécharger pour une raison quelconque (une panne de réseau?), Maven crée des fichiers * .lastUpdated, puis ne les télécharge plus jamais. Ma solution empirique consistait à supprimer le répertoire des artefacts de .m2 / repository et à redémarrer l’espace de travail eclipse avec la source de téléchargement / javadoc vérifiée et à mettre à jour les projets au démarrage également. Après le redémarrage de l’espace de travail, certains projets peuvent être marqués par erreur, alors que la progression de l’éclipse est en cours de téléchargement, toute erreur est supprimée. Peut-être que cette procédure n’est pas si “scientifique”, mais pour moi a réussi.

dans ma version d’Eclipse helios avec m2Eclipse il n’y a pas

 window --> maven --> Download Artifact Sources (select check) 

Sous la fenêtre est seulement “nouvelle fenêtre”, “nouvel éditeur” “perspective ouverte” etc.

Si vous cliquez avec le bouton droit sur votre projet, puis choisissez maven -> télécharger les sources

Rien ne se passe. aucune source n’est téléchargée, aucun fichier pom n’est mis à jour, aucune fenêtre ne s’affiche pour vous demander quelles sources.

Faire mvn xxx en dehors d’eclipse est dangereux – certaines commandes ne fonctionnent pas avec m2ecilpse – je l’ai fait une fois et j’ai perdu tout le projet, j’ai dû réinstaller Eclipse et recommencer à zéro.

Je cherche toujours un moyen pour que ecilpse et maven trouvent et utilisent la source des fichiers jars externes comme servlet-api.

J’ai ajouté la configuration de pom au plug-in maven-eclipse pour télécharger les sources et les javadocs, mais j’espère que cela se produira pour les nouvelles dépendances, pas celles existantes.

Pour les dépendances existantes, j’ai parcouru l’explorateur de paquets jusqu’aux “dépendances Maven” et cliqué avec le bouton droit sur commons-lang-2.5.jar, sélectionné Maven | Télécharger des sources et … rien ne semblait se produire (pas de barre de progression ou d’indication qu’elle faisait quoi que ce soit). Il a, cependant, téléchargé car je suis capable de passer directement à la source dans commons-lang maintenant.

overthink a suggéré d’utiliser la configuration du pom:

  ...    org.apache.maven.plugins maven-eclipse-plugin  true true ... other stuff ...     ... 

D’abord, je pensais que cela n’attacherait toujours pas le javadoc et les sources (comme j’ai essayé sans succès avec cette option -DdownloadSources avant).

Mais surprise – le fichier .classpath est connecté à ses sources et javadoc lors de l’utilisation de la variante POM!

Pour Indigo (et probablement Helios), les cases à cocher mentionnées ci-dessus se trouvent ici:

Fenêtre -> Préférences -> Maven

J’avais un problème similaire, et la solution qui me Foo.java mieux était d’inclure la source dans le même Foo.java Foo.class que le code compilé (donc un répertoire donné dans le Foo.java Foo.class inclurait à la fois Foo.java et Foo.class ). Eclipse associe automatiquement la source au code compilé et fournit automatiquement le JavaDoc à partir de la source. De toute évidence, cela n’est utile que si vous contrôlez l’artefact.

Après avoir défini les propriétés au niveau du projet ou au niveau des propriétés de l’utilisateur, veuillez effectuer un projet Maven -> Update (Forcer la mise à jour). Il télécharge les sources