web-dev-qa-db-fra.com

Obtenez des 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 Java dans Eclipse. La fonctionnalité de téléchargement automatique des fichiers JAR 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 puis-je configurer Maven pour qu'il obtienne automatiquement les pièces jointes source et javadoc et les enregistre correctement avec Eclipse?

175
Thilo

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

Ceci est réalisé en allant dans Fenêtre> Préférences> Maven et en cochant les options "Télécharger les sources d'artefacts" et "Télécharger l'artefact JavaDoc".

Screenshot of Maven Preferences

221
mrembisz
mvn Eclipse:eclipse -DdownloadSources=true

ou

mvn Eclipse:eclipse -DdownloadJavadocs=true

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

De plus, le =true portion n'est pas requise, vous pouvez donc utiliser

mvn Eclipse:eclipse -DdownloadSources -DdownloadJavadocs
124
Stephen Denne

Les autres réponses à ce travail, mais si vous voulez éviter de vous souvenir des arguments de ligne de commande, vous pouvez simplement ajouter à la configuration downloadSources et downloadJavadocs à la section maven-Eclipse-plugin de votre pom.xml:

<project>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-Eclipse-plugin</artifactId>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                    ... other stuff ...
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>
71
overthink

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

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.Apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.Apache.org/SETTINGS/1.0.0 http://maven.Apache.org/xsd/settings-1.0.0.xsd">

  <profiles>
    <profile>
      <id>sources-and-javadocs</id>
      <properties>
        <downloadSources>true</downloadSources>
        <downloadJavadocs>true</downloadJavadocs>
      </properties>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>sources-and-javadocs</activeProfile>
  </activeProfiles>
</settings>
15
Duncan Jones

Faites un clic droit sur le projet -> maven -> sources de téléchargement

9
sumeet

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

8
Hardy

Si vous utilisez meclipse do

fenêtre -> maven -> Télécharger les sources d'artefacts (cochez la case correspondante)

(Si vous continuez d’obtenir une fenêtre d’attachement à la source, cliquez sur le bouton Joindre un fichier et fermez la fenêtre d’attachement à la source. La prochaine fois que vous essaierez de voir la source, elle ouvrira la bonne source)

Surajz

4
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 actualisé une fois l'espace de travail. voila .. Les sources étaient attachées.

L'entrée du fichier source est disponible dans le chemin de la classe. Par conséquent, la nouvelle construction a résolu le problème ...

3
om39a

Il existe également un question similaire qui répond à cette question et inclut des exemples de paramètres pom.

3
andrel

Vérifier la source de téléchargement/javadoc dans les préférences Eclipse-Maven ne suffit parfois pas. Si maven ne parvient pas à les télécharger pour une raison quelconque (une panne de réseau?), Il crée des fichiers * .lastUpdated, puis ne le télécharge plus jamais. Ma solution empirique consistait à supprimer le répertoire des artefacts de .m2/repository, à redémarrer l'espace de travail Eclipse en vérifiant la source de téléchargement/javadoc et à mettre également à jour les projets au démarrage. Après le redémarrage de l’espace de travail, il est possible que certains projets soient marqués comme étant en erreur pendant le téléchargement d’Eclipse. Toute erreur sera alors supprimée. Peut-être que cette procédure n’est pas aussi "scientifique", mais pour moi, j’ai réussi.

2
user17417

Changer pom pour maven-Eclipse-plugin afin d’inclure source/javadoc s’applique uniquement aux nouvelles dépendances ajoutées à pom. Si nous devons appliquer des dépendances existantes, nous devons exécuter mvn dependency: sources. J'ai vérifié ça.

2
bnguyen82

dans ma version d’Eclipse helios avec m2Eclipse, il n’existe pas

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

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

Si vous faites un clic droit sur votre projet, alors choisissez maven -> sources de téléchargement

Rien ne se passe. aucune source n'est téléchargée, aucun fichier pom n'est mis à jour, aucune fenêtre ne s'ouvre vous demandant 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 d'obtenir ecilpse et maven pour trouver et utiliser la source de pots externes comme servlet-api.

2
wingnut

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

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

1
Chris Romine

overthink suggéré d'utiliser la configuration dans le pom:

<project>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-Eclipse-plugin</artifactId>
            <configuration>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
                ... other stuff ...
            </configuration>
        </plugin>
    </plgins>
</build>
...

Tout d’abord, j’ai pensé que cela ne permettrait toujours pas d’attacher le javadoc et les sources (comme j’avais essayé sans succès avec cette option -DdownloadSources auparavant).

Mais surprise - le fichier .classpath IS) obtenant ses sources et son javadoc attachés lors de l’utilisation de la variante POM!

1
jhohlfeld

J'ai ajouté la configuration de pom au plugin maven-Eclipse pour télécharger le code source et les javadocs, mais je pense/espère que cela se produira pour les nouvelles dépendances, et non pour celles existantes.

Pour les dépendances existantes, j'ai parcouru l'explorateur de paquet jusqu'aux "Dépendances Maven" et cliqué avec le bouton droit de la souris sur commons-lang-2.5.jar, sélectionné Maven | Download Sources and ... rien ne semblait se passer (aucune barre de progression ni indication indiquant qu'il faisait quoi que ce soit). Il a toutefois été téléchargé car je suis maintenant en mesure de passer à la source dans commons-lang.

1
unique72

J'ai eu un problème similaire, et la solution qui a fonctionné le mieux pour moi a été d'inclure le code source dans le même fichier jar que le code compilé (un répertoire donné dans le fichier jar inclurait donc 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, ce n'est utile que si vous contrôlez l'artefact.

0
Dan R.

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

0
arkabhi