Maven - Toujours télécharger les sources et javadocs


244

Existe-t-il un moyen de configurer maven pour toujours télécharger les sources et les javadocs? La spécification à -DdownloadSources=true -DdownloadJavadocs=truechaque fois (qui va généralement de pair avec l'exécution de la compilation mvn deux fois parce que j'ai oublié la première fois) devient plutôt fastidieuse.


Est-ce pour le plugin eclipse? Vous ne devriez pas avoir à exécuter cela très souvent de toute façon ...
sjr

1
Non, c'est pour le programme en ligne de commande. Je n'ai pas besoin de l'exécuter très souvent, mais ce serait génial si je ne devais jamais l'exécuter!
schmmd

1
Qu'est-ce que la ligne de commande? C'est quand tu fais mvn eclipse:eclipsebien?
2011

14
@sjr, oui pour télécharger des sources et des javadocs, on peut l'exécutermvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
Yuriy Nakonechnyy

Je pense que cette question est toujours sans réponse. La réponse acceptée concerne uniquement le plugin Eclipse. @ La réponse d'AlexisGamarra est la plus proche mais ne résout pas la "persistance" de la solution - elle ne configure pas Maven pour qu'il le fasse toujours chaque fois que vous exécutez l' installation de mvn .
Honza Zidek

Réponses:


265

Ouvrez votre fichier settings.xml ~/.m2/settings.xml (créez-le s'il n'existe pas). Ajoutez une section avec les propriétés ajoutées. Assurez-vous ensuite que les profils actifs incluent le nouveau profil.

<settings>

   <!-- ... other settings here ... -->

    <profiles>
        <profile>
            <id>downloadSources</id>
            <properties>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
            </properties>
        </profile>
    </profiles>

    <activeProfiles>
        <activeProfile>downloadSources</activeProfile>
    </activeProfiles>
</settings>

6
J'essaie ces propriétés de profil dans Maven 2.2.1 et 3.0.2 et elles ne fonctionnent pas. Le référentiel cible est Archiva. Des suggestions sur quoi d'autre peut être essayé? J'ai également essayé d'utiliser la dépendance: objectif sources. Merci
jmend

18
De plus, dans Eclipse, vous pouvez simplement aller dans Préférences -> Maven (pas de sous-catégorie). Là, vous pouvez cocher "Télécharger les sources d'artefact / JavaDocs". Cependant, parfois Eclipse ne veut pas créer ce fichier manuellement (ce qui m'est arrivé dans Luna). Dans ce cas - allez-y, collez cette réponse enveloppée dans des balises de paramètres et dites à Eclipse de la recharger, et cela devrait fonctionner.
Andrei Bârsan

9
Cela a fonctionné pour moi: dans Eclipse, allez dans Préférences -> Maven (pas de sous-catégorie). Cochez - "Télécharger la source d'artefact" - "Télécharger les JavaDocs d'artefact" - "Mettre à jour les projets Maven au démarrage" (juste parce que je ne trouve pas la méthode manuelle) Ensuite, redémarrez Eclipse. Fait
Dirk

4
Cela n'affecte que le plugin Maven Eclipse.
Jingguo Yao

9
Cela ne devrait pas être la réponse acceptée! Comme l'a déclaré @JingguoYao, cela n'affecte que le plugin Maven Eclipse. La question d'origine n'était pas liée à Eclipse, mais plutôt au Maven lui-même.
Honza Zidek

195

Dans mon cas, la solution "settings.xml" ne fonctionnait pas donc j'utilise cette commande pour télécharger toutes les sources:

mvn dependency:sources

Vous pouvez également l'utiliser avec d'autres commandes maven, par exemple:

mvn clean install dependency:sources -Dmaven.test.skip=true

Pour télécharger toute la documentation, utilisez la commande suivante:

mvn dependency:resolve -Dclassifier=javadoc

1
Je pense que cette question est toujours sans réponse. La réponse acceptée concerne uniquement le plugin Eclipse. Votre réponse est la plus proche mais ne résout pas la "persistance" de la solution - elle ne configure pas Maven pour qu'il le fasse toujours chaque fois que vous exécutez l' installation de mvn .
Honza Zidek

52

Il suffit de consolider et de préparer la commande unique pour traiter le téléchargement des sources et des documents ...

mvn dependency:sources dependency:resolve -Dclassifier=javadoc

42

Répondre aux personnes de Google

Dans Eclipse, vous pouvez télécharger automatiquement javadoc et les sources .

Pour ce faire, faites un clic droit sur le projet et utilisez

  • Maven -> Télécharger JavaDoc
  • Maven -> Sources de téléchargement

3
Et dans IDEA, vous pouvez cliquer avec le bouton droit sur le module, et sous le menu Maven, il y a une option pour télécharger les sources et / ou la documentation
forresthopkinsa

@Betlista a lu la première ligne du message. Beaucoup de gens passent de Google à ici à la recherche d'autre chose. Mais
finissez

14

J'utilise Maven 3.3.3 et je ne parviens pas à faire fonctionner le profil par défaut dans un settings.xmlfichier utilisateur ou global .

Comme solution de contournement, vous pouvez également ajouter un plugin de construction supplémentaire à votre pom.xmlfichier.

<properties>
    <maven-dependency-plugin.version>2.10</maven-dependency-plugin.version>
</properties>
<build>
    <plugins>
        <!-- Download Java source JARs. -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>${maven-dependency-plugin.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>sources</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

7

Sur NetBeans : ouvrez votre explorateur de projet -> Dépendances -> [ file.jar ] clic droit -> Télécharger Javadoc


4

Comme l'a dit @ xecaps12, l'approche la plus simple / efficace consiste à modifier votre fichier de paramètres Maven (~ / .m2 / settings.xml) mais s'il s'agit d'une valeur par défaut paramètre pour vous, vous pouvez également le définir comme ça

<profile>
  <id>downloadSources</id>
  <activation>
    <activeByDefault>true</activeByDefault>
  </activation>
  <properties>
      <downloadSources>true</downloadSources>
      <downloadJavadocs>true</downloadJavadocs>
  </properties>
</profile>

Cela ne fonctionne pas réellement, vous déclarez simplement des propriétés globales inutilisées. Je crois que la solution mythique est venue de maven-eclipse-plugin: maven.apache.org/plugins/maven-eclipse-plugin/examples/…
inanutshellus

Non, c'est juste une simplification de la réponse "résolue";)
Kraiss

1
La version "résolue" ne fonctionne pas non plus. (J'ai également fait le même commentaire, mais je l'ai supprimé temporairement pendant que je discute avec vous.) Donc - dites-vous que votre réponse (et donc la réponse résolue) fonctionne réellement pour vous ?? Je veux dire, 159 personnes ont téléchargé cette réponse erronée ou obsolète, donc cela fonctionne clairement pour quelqu'un. Si cela fonctionne comme vous le dites, alors je fais quelque chose de mal, tout comme plusieurs personnes sur la réponse résolue dans ses commentaires et je serais l' amour d'apprendre que et d' obtenir ce travail.
inanutshellus

Je suppose que ces var globales sont vérifiées par le plugin eclipse lorsque vous développez réellement avec eclise. la récupération des sources se fait par eclipse et non par maven en ligne de commande.
Jonatan Cloutier

1

Je pense que cela peut être fait par plugin. Voir ce chapitre du livre Maven.

Vous pourrez peut-être configurer le plugin de dépendance pour télécharger les sources (même si je ne l'ai pas essayé moi-même :-).


1

Dans Netbeans, vous pouvez demander à Maven de vérifier javadoc à chaque projet ouvert:

Tools| Options| Javaicône | Maventab | Dependenciescatégorie | Check Javadocliste déroulante définie surEvery Project Open .

Fermez et rouvrez Netbeans et vous verrez Maven télécharger des javadocs dans la barre d'état.



0

Modifiez simplement le fichier mvn(ou mvn.cmdsi dans Windows) et ajoutez les commutateurs de ligne de commande dont vous avez besoin (comme mentionné par d'autres réponses). Si vous ne souhaitez pas modifier les fichiers d'installation (ce que je recommanderais), créez un mymvn(ou mymvn.cmd) wrapper qui invoque le régulier mvnavec les paramètres.


0

J'ai dû utiliser KeyStore pour télécharger les pots. Si vous rencontrez des problèmes liés au certificat, vous pouvez utiliser cette approche:

mvn clean install dependency:sources -Dmaven.test.skip=true -Djavax.net.ssl.trustStore="Path_To_Your_KeyStore"

Si vous voulez savoir comment créer des KeyStores, c'est un très bon lien: problèmes d'utilisation de Maven et SSL derrière le proxy


0

Pour les sources sur le niveau de dépendance (pom.xml), vous pouvez ajouter:

<classifier>sources</classifier>

0

Pour suivre la réponse de kevinarpe, cela fait à la fois des sources et des Javadocs:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>sources</goal>
                            <goal>resolve</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <classifier>javadoc</classifier>
                </configuration>
            </plugin>
        </plugins>
    </build>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.