Quelqu'un a-t-il une idée si vous pouvez trouver des fichiers JAR source sur les référentiels Maven?
Quelqu'un a-t-il une idée si vous pouvez trouver des fichiers JAR source sur les référentiels Maven?
Réponses:
Micro-conseil Maven: obtenir des sources et des Javadocs
Lorsque vous utilisez Maven dans un IDE, vous trouvez souvent la nécessité pour votre IDE de résoudre le code source et les Javadocs pour vos dépendances de 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 emballeurs de bibliothèque ici. Ainsi, certains d'entre eux n'auront pas de code source et beaucoup d'entre eux n'auront pas de Javadocs.
Si vous avez beaucoup de dépendances, il peut également être judicieux d'utiliser des inclusions / exclusions pour obtenir des artefacts spécifiques, la commande suivante ne téléchargera par exemple que les sources de 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
mvn dependency:resolve -Dclassifier=javadoc
IntelliJ IDEA remarque automatiquement les javadocs, ce qui est très agréable.
Configuration et exécution du plugin maven-eclipse, (par exemple à 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>
mvn eclipse:eclipse
si vous les ajoutez au fichier POM?
M2_REPO
fichier xxxx-yy-sources.jar, au même emplacement que le fichier jar normal. Il sera attaché en tant que code source pour le pot xxxx-yy dans les bibliothèques
Si un projet crée un bocal des sources du projet et le déploie dans un référentiel maven, vous le trouverez :)
Juste pour info, les artefacts de sources sont généralement créés par le plugin maven-source . 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 du
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 a été donné pour décrire un artefact ("-sources" ou "-test-sources" ici) est appelé un classificateur.
Pour déclarer une dépendance sur un artefact qui utilise un classificateur, ajoutez simplement l' <classifier>
élément. 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 des sources (et / ou JavaDoc) à partir de l'artefact principal sans déclarer explicitement une dépendance à leur égard.
Enfin, notez également que certains moteurs de recherche de référentiel permettent de rechercher des artefacts à l'aide du classificateur (au moins Nexus le fait avec la recherche avancée). Voir cette recherche par exemple.
Le plugin maven idea pour IntelliJ Idea vous permet de spécifier si les sources et le doc java doivent être résolus et téléchargés.
mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true
Pour télécharger une source spécifique ou javadoc, nous devons inclure les GroupIds - C'est une valeur séparée par des virgules comme indiqué ci-dessous
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources
Notez que le classificateur n'est pas séparé par des virgules, pour télécharger le javadoc, nous devons exécuter la commande ci-dessus une fois de plus avec le classificateur en tant que javadoc
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc
Pour télécharger une 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
Cela met l'artefact donné dans votre référentiel Maven local, c'est-à-dire généralement $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 à l'intérieur des plugins.
vous pouvez trouver des informations dans cette question connexe: Obtenez les fichiers jar source joints à Eclipse pour les dépendances gérées par Maven
si vous utilisez le plugin eclipse maven, puis utilisez «mvn eclipse: 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'artefact, cela laisserait le pom.xml intact et garderait vos sources ou documents java (si sélectionnés) juste pour le développement directement à l'emplacement de votre machine ~ / .m2
Dans Eclipse
pom.xml
Run As
-> Maven generate-sources
Prérequis:
Maven doit être configuré avec Eclipse.
Dans NetBeans 8 avec un projet piloté par Maven, cliquez simplement sur le contexte de l'élément de liste de fichiers jar de la dépendance qui vous intéresse. ChoisirDownload Sources
. Attendez un instant et NetBeans téléchargera et installera automatiquement le code source, si disponible.
De même, vous pouvez choisir Download Javadoc
d'installer le document localement. Ensuite, vous pouvez contextuellement cliquer sur du code dans l'éditeur et choisir de voir le JavaDoc.
En se basant sur l'observation de 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 récupérer la source pour 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'utiliserai l'approche de @ PascalThivent à l' avenir.
Si vous connaissez le groupId et l' 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!
J'ai également utilisé le plugin eclipse pour mettre le projet dans l'espace de travail eclipse. Depuis que j'ai travaillé sur un autre projet, j'ai vu qu'il est possible de travailler avec eclipse mais sans le plugin maven-eclipse. Cela le rend plus facile à utiliser avec différents environnements et permet l'utilisation facile de maven sur éclipse. Et cela sans changer le fichier pom.xml.
Je recommande donc l'approche de Gabriel Ramirez.
Les référentiels Maven fournissent un moyen simple de télécharger le fichier source.
Je vais l'expliquer en utilisant une démonstration de "spring-boot-actuator-autoconfigure".
Sinon, vous pouvez toujours "git cloner" le repo de github, si c'est là et obtenir le code spécifique.
Comme expliqué par d'autres, vous pouvez utiliser la commande "mvn dependency: sources" pour obtenir et générer le pot de sources pour la dépendance que vous utilisez.
Remarque: Certaines dépendances n'auront pas sources.jar, car celles-ci ne contiennent pas de code source mais un fichier pom. par exemple actionneur de démarrage à ressort . Comme dans ce cas:
Les POM de démarrage sont un ensemble de descripteurs de dépendance pratiques que vous pouvez inclure dans votre application. Vous bénéficiez d'un guichet unique pour toutes les technologies Spring et connexes dont vous avez besoin, sans avoir à parcourir des exemples de code et à copier-coller des charges de descripteurs de dépendance.
Référence: introduction aux démarreurs Spring Boot
Si vous souhaitez trouver le fichier jar source pour l'un des artefacts manuellement, accédez à l'emplacement du référentiel maven pour l'artefact particulier et dans Fichiers, cliquez sur «Afficher tout». Vous pouvez trouver le fichier jar source.