web-dev-qa-db-fra.com

Obtenir des fichiers JAR sources à partir du référentiel Maven

Quelqu'un at-il une idée si vous pouvez trouver des fichiers JAR sources sur les référentiels Maven?

421
Ioan Alexandru Cucu

Maven Micro-Tip: Obtenir des sources et des Javadocs

Lorsque vous utilisez Maven dans un IDE, vous avez souvent besoin de votre IDE pour résoudre le code source et les Javadocs pour les dépendances de votre bibliothèque. Il existe un moyen facile d'atteindre cet objectif.

mvn dependency:sources
mvn dependency:resolve -Dclassifier=javadoc

La première commande tentera de télécharger le code source pour chacune des dépendances de votre fichier pom.

La deuxième commande tentera de télécharger les Javadocs.

Maven est à la merci des utilisateurs de la bibliothèque. Ainsi, certains d'entre eux n'auront pas de code source empaqueté et beaucoup n'auront pas de Javadocs.

Dans le cas où vous avez beaucoup de dépendances, il pourrait également être judicieux d’utiliser inclusions/exclusions pour obtenir des artefacts spécifiques, la commande suivante va par exemple télécharger uniquement les sources pour la dépendance avec un artifactId spécifique:

mvn dependency:sources -DincludeArtifactIds=guava

Source: http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/

Documentation: https://maven.Apache.org/plugins/maven-dependency-plugin/sources-mojo.html

764
Alain O'Dea

Lors de l'exécution d'Eclipse à partir de la ligne de commande (mvn Eclipse:eclipse)

   <build>
        <plugins>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-Eclipse-plugin</artifactId>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                </configuration>
            </plugin>
        </plugins>
    </build>
86
RobAu

Si un projet crée un fichier jar des sources du projet et le déploie dans un référentiel Maven, vous le trouverez :)

Juste pour votre information, les artefacts de sources sont généralement créés par le maven-source-plugin . Ce plugin peut regrouper les sources principales ou de test d'un projet dans une archive JAR et, comme expliqué dans Configuration du plugin source :

(...) Le fichier jar généré sera nommé par la valeur de finalName plus "-sources" s'il s'agit des sources principales. Sinon, ce serait finalName plus "-test-sources" s'il s'agit des sources de test.

Le texte supplémentaire qui a été donné pour décrire un artefact ("-sources" ou "-test-sources" ici) est appelé un classificateur. 

Pour déclarer une dépendance à un artefact qui utilise un classificateur, ajoutez simplement l'élément <classifier>. Par exemple:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate</artifactId>
  <version>3.2.7.ga</version>
  <classifier>sources</classifier>
</dependency>

Notez que vous ne le faites généralement pas. La plupart des IDE prennent en charge le téléchargement de sources (et/ou JavaDoc) à partir de l'artefact principal sans déclarer explicitement leur dépendance.

Enfin, notez également que certains moteurs de recherche de référentiel permettent de rechercher des artefacts à l'aide du classificateur (Nexus au moins le fait avec la recherche avancée). Voir cette recherche par exemple.

33
Pascal Thivent

Pour télécharger des sources spécifiques à ou javadoc , nous devons inclure les GroupIds - une valeur séparée par des virgules, comme indiqué ci-dessous.

mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources

Notez que les classificateurs ne sont pas séparés par des virgules. Pour télécharger le fichier javadoc, nous devons exécuter la commande ci-dessus une fois de plus, avec le classificateur javadoc.

mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc
18
Anver Sadhat

Le plugin maven idea pour IntelliJ Idea vous permet de spécifier si les sources et la documentation Java doivent être résolus et téléchargés.

mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true
16
dev_doctor

Pour télécharger toute utilisation d'artefact 

mvn dependency:get -Dartifact=groupId:artifactId:version:packaging:classifier

Pour les sources Groovy, ce serait 

mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:sources

Pour le javadoc de Groovy, vous utiliseriez

mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc

Ceci place l’artefact donné dans votre référentiel Maven local, c’est-à-dire habituellement $HOME/.m2/repository.

dependency:sources télécharge simplement les sources des dépendances du projet, pas les sources des plugins ni les sources des dépendances définies dans les plugins.

13
Maddin

vous pouvez trouver des informations sur cette question: Obtenir les fichiers jar source attachés à Eclipse pour les dépendances gérées par Maven
si vous utilisez le plug-in Eclipse maven, utilisez 'mvn Eclipse: eclipse -DdownloadSources = true'.

11
Stefan De Boey

si vous utilisez Eclipse, vous pouvez également ouvrir Préférences> Maven et sélectionner Télécharger les sources d'artefacts. Le fichier pom.xml sera ainsi conservé et vos sources ou votre documentation Java (si elle est sélectionnée) conservée uniquement à l'emplacement de votre machine ~ /.

9
Gabriel Ramirez

Dans Eclipse

  1. Faites un clic droit sur le pom.xml
  2. Sélectionnez Run As -> Maven generate-sources
    il générera la source par défaut dans le dossier .m2

Prérequis:

Maven devrait être configuré avec Eclipse.

6
bondkn

Dans Eclipse - cliquez sur le projet puis:

 enter image description here .

4
Witold Kaczurba

NetBeans, clic contextuel

Dans NetBeans 8 avec un projet piloté par Maven, il suffit de cliquer avec le contexte sur l'élément de la liste de fichiers jar de la dépendance qui vous intéresse. Choisissez Download Sources. Attendez un instant et NetBeans téléchargera et installera automatiquement le code source, s'il est disponible. 

De même, vous pouvez choisir Download Javadoc pour que la documentation soit installée localement. Ensuite, vous pouvez cliquer avec le contexte sur un code dans l'éditeur et choisir de voir le JavaDoc. 

 screen shot of context-menu item "Download Sources" being chosen in a NetBeans 8 project driven by Maven

3
Basil Bourque

Vous pouvez, s'ils sont téléchargés. Généralement ils s'appellent "frameworkname-version-source (s)"

3
Bozho

Si vous regardez la console Maven dans Eclipse (Kepler), les sources seront automatiquement téléchargées pour une dépendance Maven si vous essayez d'ouvrir une classe à partir de ladite dépendance Maven dans l'éditeur pour lequel vous n'avez pas déjà téléchargé les sources. C'est pratique lorsque vous ne voulez pas capturer la source de toutes vos dépendances, mais que vous ne savez pas lesquelles vous voulez à l'avance (et que vous utilisez Eclipse).

J'ai fini par utiliser l'approche de @ GabrielRamierez , mais j'emploierai l'approche de @ PascalThivent

2
eebbesen

J'ai également utilisé le plugin Eclipse pour intégrer le projet dans l'espace de travail Eclipse . Depuis que j'ai travaillé sur un projet différent, j'ai constaté qu'il était possible de travailler avec Eclipse mais sans le plugin maven-Eclipse. Cela facilite l'utilisation avec différents environnements et permet d'utiliser facilement maven sur Eclipse. Et cela sans changer le fichier pom.xml.

Donc, je recommande l'approche de Gabriel Ramirez.

1
eeezyy

Si vous connaissez groupId et aritifactId, vous pouvez générer une URL de téléchargement comme celle-ci.

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>

http://central.maven.org/maven2/ch/qos/logback/logback-classic/

et vous obtiendrez une page comme celle-ci, choisissez la version dont vous avez besoin, profitez-en!  enter image description here

 enter image description here

1
senninha

Pour le débogage, vous pouvez également utiliser un "Décompilateur Java" tel que: JAD et décompiler la source à la volée (bien que la source générée ne soit jamais identique à l'originale). Ensuite, installez JAD en tant que plug-in dans Eclipse ou dans votre IDE préféré.

0
atom88