Quelqu'un at-il une idée si vous pouvez trouver des fichiers JAR sources sur les référentiels Maven?
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
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>
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 seraitfinalName
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.
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
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
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.
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'.
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 ~ /.
Dans Eclipse
pom.xml
Run As
-> Maven generate-sources
Prérequis:
Maven devrait être configuré avec Eclipse.
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.
Vous pouvez, s'ils sont téléchargés. Généralement ils s'appellent "frameworkname-version-source (s)"
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 .
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.
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!
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é.