Hat jemand eine Idee, ob Sie Quell-JARs in Maven-Repositories finden können?
Hat jemand eine Idee, ob Sie Quell-JARs in Maven-Repositories finden können?
Antworten:
Maven Micro-Tipp: Holen Sie sich Quellen und Javadocs
Wenn Sie Maven in einer IDE verwenden, muss Ihre IDE häufig Quellcode und Javadocs für Ihre Bibliotheksabhängigkeiten auflösen. Es gibt einen einfachen Weg, um dieses Ziel zu erreichen.
mvn dependency:sources mvn dependency:resolve -Dclassifier=javadoc
Der erste Befehl versucht, den Quellcode für jede der Abhängigkeiten in Ihrer POM-Datei herunterzuladen.
Der zweite Befehl versucht, die Javadocs herunterzuladen.
Maven ist hier den Bibliotheksverpackern ausgeliefert. Einige von ihnen haben also keinen Quellcode und viele von ihnen haben keine Javadocs.
Wenn Sie viele Abhängigkeiten haben, ist es möglicherweise auch eine gute Idee, Einschlüsse / Ausschlüsse zu verwenden, um bestimmte Artefakte abzurufen. Mit dem folgenden Befehl werden beispielsweise nur die Quellen für die Abhängigkeit mit einer bestimmten Artefakt-ID heruntergeladen:
mvn dependency:sources -DincludeArtifactIds=guava
Quelle: 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
mvn dependency:resolve -Dclassifier=javadoc
IntelliJ bemerkt IDEA automatisch die Javadocs, was sehr schön ist.
Konfigurieren und Ausführen des Maven-Eclipse-Plugins (z. B. über die Befehlszeile 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
wenn Sie diese zur POM-Datei hinzufügen?
M2_REPO
Datei als xxxx-yy-sources.jar am selben Speicherort wie das normale JAR heruntergeladen . Es wird als Quellcode für das xxxx-yy-Glas in den Bibliotheken
Wenn ein Projekt ein JAR der Projektquellen erstellt und es in einem Maven-Repository bereitstellt, finden Sie es :)
Nur zu Ihrer Information, Quellartefakte werden im Allgemeinen vom Maven-Source-Plugin erstellt . Dieses Plugin kann die Haupt- oder Testquellen eines Projekts in einem JAR-Archiv bündeln und, wie unter Konfigurieren des Quell- Plugins erläutert :
(...) Die generierte JAR-Datei wird nach dem Wert des
finalName
Pluszeichens "-sources" benannt, wenn es sich um die Hauptquellen handelt. Andernfalls wäre esfinalName
plus "-test-sources", wenn es sich um die Testquellen handelt.
Der zusätzliche Text zur Beschreibung eines Artefakts (hier "-sources" oder "-test-sources") wird als Klassifikator bezeichnet.
Fügen Sie einfach das <classifier>
Element hinzu, um eine Abhängigkeit von einem Artefakt zu deklarieren, das einen Klassifizierer verwendet. 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. Die meisten IDEs unterstützen das Herunterladen von Quellen (und / oder JavaDoc) vom Hauptartefakt, ohne explizit eine Abhängigkeit von diesen zu deklarieren.
Beachten Sie schließlich auch, dass einige Repository-Suchmaschinen die Suche nach Artefakten mithilfe des Klassifikators ermöglichen (zumindest Nexus bei der erweiterten Suche). Siehe diese Suche zum Beispiel.
Um eine bestimmte Quelle oder ein bestimmtes Javadoc herunterzuladen, müssen wir die GroupIds einfügen. Dies ist ein durch Kommas getrennter Wert, wie unten gezeigt
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources
Beachten Sie, dass die Klassifizierer nicht durch Kommas getrennt sind. Um das Javadoc herunterzuladen, müssen Sie den obigen Befehl noch einmal mit dem Klassifizierer als Javadoc ausführen
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc
Mit dem Maven-Ideen-Plugin für IntelliJ Idea können Sie festlegen, ob Quellen und Java-Dokumente aufgelöst und heruntergeladen werden sollen
mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true
Verwenden Sie zum Herunterladen von Artefakten
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 Groovys Javadoc würden Sie verwenden
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc
Dadurch wird das angegebene Artefakt normalerweise in Ihr lokales Maven-Repository gestellt $HOME/.m2/repository
.
dependency:sources
Lädt nur die Quellen der Projektabhängigkeiten herunter, nicht die Plugins-Quellen oder die in Plugins definierten Abhängigkeitsquellen.
Informationen finden Sie in dieser verwandten Frage: Holen Sie sich Quell-JAR-Dateien, die an Eclipse für von Maven verwaltete Abhängigkeiten angehängt sind.
Wenn Sie das Eclipse-Maven- Plugin verwenden, verwenden Sie 'mvn eclipse: eclipse -DdownloadSources = true'.
Wenn Sie Eclipse verwenden, können Sie auch Einstellungen> Maven öffnen und Artefaktquellen herunterladen auswählen. Dadurch wird die Datei pom.xml intakt und Ihre Quellen oder Java-Dokumente (falls ausgewählt) bleiben nur für die Entwicklung direkt an Ihrem Computerstandort ~ / .m2 erhalten
In Eclipse
pom.xml
Run As
-> Maven generate-sources
Voraussetzung:
Maven sollte mit Eclipse konfiguriert werden.
Klicken Sie in NetBeans 8 mit einem Maven-gesteuerten Projekt lediglich im Kontext auf das Listenelement der JAR-Datei der Abhängigkeit, an der Sie interessiert sind. WählenDownload Sources
. Warten Sie einen Moment und NetBeans lädt den Quellcode automatisch herunter und installiert ihn, falls verfügbar.
Ebenso können Sie festlegen Download Javadoc
, dass das Dokument lokal installiert wird. Anschließend können Sie im Editor auf einen Code im Kontext klicken und JavaDoc anzeigen.
Basierend auf dem Betrachten der Maven-Konsole in Eclipse (Kepler) werden Quellen automatisch für eine Maven-Abhängigkeit heruntergeladen, wenn Sie versuchen, eine Klasse aus dieser Maven-Abhängigkeit in dem Editor zu öffnen, für den Sie die Quellen noch nicht heruntergeladen haben. Dies ist praktisch, wenn Sie nicht für alle Ihre Abhängigkeiten die Quelle abrufen möchten, aber nicht wissen, welche Sie im Voraus möchten (und Eclipse verwenden).
Am Ende habe ich den Ansatz von @ GabrielRamierez verwendet , werde aber in Zukunft den Ansatz von @ PascalThivent anwenden .
Wenn Sie die groupId und die aritifactId kennen , können Sie eine solche Download-URL generieren.
<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/
und Sie erhalten eine Seite wie diese, wählen Sie die Version, die Sie benötigen, genießen Sie es einfach!
Ich habe auch das Eclipse-Plugin verwendet, um das Projekt in den Eclipse-Arbeitsbereich zu bringen. Da ich an einem anderen Projekt gearbeitet habe, habe ich gesehen, dass es möglich ist, mit Eclipse zu arbeiten, aber ohne das Maven-Eclipse-Plugin. Dies erleichtert die Verwendung in verschiedenen Umgebungen und ermöglicht die einfache Verwendung von Maven over Eclipse. Und das ohne die pom.xml-Datei zu ändern.
Daher empfehle ich den Ansatz von Gabriel Ramirez.
Maven-Repositorys bieten eine einfache Möglichkeit zum Herunterladen von Quellen.
Ich werde es anhand einer Demonstration für "Spring-Boot-Actuator-Autoconfigure" erklären.
Andernfalls können Sie das Repo von github jederzeit "git clone", sofern es vorhanden ist, und den spezifischen Code abrufen.
Wie von anderen erläutert, können Sie den Befehl "mvn dependency: sources" verwenden, um die JAR-Datei get and generate sources für die von Ihnen verwendete Abhängigkeit zu verwenden.
Hinweis: Einige Abhängigkeiten haben keine source.jar, da diese keinen Quellcode, sondern eine POM-Datei enthalten. zB Spring-Boot-Starter-Aktuator . Wie in diesem Fall:
Starter-POMs sind eine Reihe praktischer Abhängigkeitsbeschreibungen, die Sie in Ihre Anwendung aufnehmen können. Sie erhalten eine zentrale Anlaufstelle für alle Spring- und verwandten Technologien, die Sie benötigen, ohne den Beispielcode durchsuchen und viele Abhängigkeitsbeschreibungen kopieren und einfügen zu müssen.
Referenz: Einführung in Spring Boot Starter
Wenn Sie die Quell-JAR-Datei für eines der Artefakte manuell suchen möchten, gehen Sie zum Speicherort des Maven-Repositorys für das jeweilige Artefakt und klicken Sie in Dateien auf "Alle anzeigen". Sie können die Quell-JAR-Datei finden.