Hat jemand eine Idee, wenn Sie Quelle JARs auf Maven Repositories finden können?
Antworten
Zu viele Anzeigen?Maven Micro-Tip: Quellen und Javadocs abrufen
Wenn Sie Maven in einer IDE verwenden, haben Sie oft das Bedürfnis, dass Ihre IDE den Quellcode und die Javadocs für Ihre Bibliotheksabhängigkeiten auflöst. Es gibt einen einfachen Weg, um dieses Ziel zu erreichen.
mvn dependency:sources mvn dependency:resolve -Dclassifier=javadoc
Mit dem ersten Befehl wird versucht, den Quellcode für jede der Abhängigkeiten in Ihrer pom-Datei herunterzuladen.
Mit dem zweiten Befehl wird versucht, die Javadocs herunterzuladen.
Maven ist hier der Gnade der Bibliothekspaketierer ausgeliefert. So werden einige von ihnen keinen Quellcode verpackt haben und viele von ihnen werden keine Javadocs haben.
Falls Sie viele Abhängigkeiten haben, kann es auch eine gute Idee sein, das Einschlüsse/Ausschlüsse zu verwenden, um bestimmte Artefakte zu erhalten, der folgende Befehl wird zum Beispiel nur die Quellen für die Abhängigkeit mit einer bestimmten artifactId:
mvn dependency:sources -DincludeArtifactIds=guava
Source : http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/
Dokumentation: https://maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html
Konfigurieren und Ausführen des maven-eclipse-Plugins (z. B. über die Kommandozeile) 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>
Wenn ein Projekt ein Jar der Projektquellen erstellt und es in ein Maven-Repository auslagert, dann werden Sie es finden :)
Zu Ihrer Information: Quellenartefakte werden im Allgemeinen von der maven-source-plugin . Dieses Plugin kann die Haupt- oder Testquellen eines Projekts in einem jar-Archiv bündeln und, wie in Quell-Plugin konfigurieren :
(...) Die erzeugte jar-Datei wird nach dem Wert des Parameters
finalName
plus "-sources", wenn es sich um die Hauptquellen handelt. Andernfalls würde es heißenfinalName
plus "-test-sources", wenn es sich um die Testquellen handelt.
Der zusätzliche Text, der zur Beschreibung eines Artefakts angegeben wurde (hier "-sources" oder "-test-sources"), wird als Klassifikator bezeichnet.
Um eine Abhängigkeit von einem Artefakt zu deklarieren, das einen Klassifikator verwendet, fügen Sie einfach die <classifier>
Element. Zum Beispiel:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.7.ga</version>
<classifier>sources</classifier>
</dependency>
Beachten Sie, dass Sie dies im Allgemeinen nicht tun, da die meisten IDEs Unterstützung für das Herunterladen von Quellen (und/oder JavaDoc) aus dem Hauptartefakt bieten, ohne explizit eine Abhängigkeit von diesen zu deklarieren.
Schließlich ist auch zu beachten, dass einige Repository-Suchmaschinen die Suche nach Artefakten anhand des Klassifizierers ermöglichen (zumindest Nexus mit der erweiterten Suche). Siehe diese Suche zum Beispiel.
Zum Herunterladen eines Artefakts verwenden Sie
mvn dependency:get -Dartifact=groupId:artifactId:version:packaging:classifier
Für Groovy-Quellen wäre dies
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:sources
Für das Javadoc von Groovy würden Sie verwenden
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc
Dies stellt das angegebene Artefakt in Ihr lokales Maven-Repository, d.h. normalerweise $HOME/.m2/repository
.
dependency:sources
lädt nur die Quellen der Projektabhängigkeiten herunter, nicht die Quellen der Plugins und auch nicht die Quellen der in den Plugins definierten Abhängigkeiten.
Le site Maven-Ideen-Plugin für IntelliJ Idea können Sie angeben, ob die Quellen und das Java-Dokument aufgelöst und heruntergeladen werden sollen oder nicht
mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true
- See previous answers
- Weitere Antworten anzeigen