it-swarm.com.de

Holen Sie sich Quell-JARs aus dem Maven-Repository

Hat jemand eine Idee, ob Sie Quell-JARs in Maven-Repositories finden können?

421

Maven Micro-Tipp: Holen Sie sich Quellen und Javadocs

Wenn Sie Maven in einer IDE verwenden, müssen Sie häufig IDE benötigen, um Quellcode und Javadocs für Ihre Bibliotheksabhängigkeiten aufzulösen. Es gibt einen einfachen Weg, dieses Ziel zu erreichen.

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

Der erste Befehl versucht, Quellcode für jede der Abhängigkeiten in Ihrer POM-Datei herunterzuladen.

Der zweite Befehl versucht, die Javadocs herunterzuladen.

Maven ist den Bibliotheksverpackern hier ausgeliefert. Einige von ihnen haben also keinen Quellcode und viele von ihnen keine Javadocs.

Falls Sie viele Abhängigkeiten haben, ist es möglicherweise eine gute Idee, .__ zu verwenden. Einschlüsse/Ausschlüsse, um bestimmte Artefakte zu erhalten, den folgenden Befehl lädt beispielsweise nur die Quellen für die Abhängigkeit mit .__ herunter. eine bestimmte Artefakt-ID:

mvn dependency:sources -DincludeArtifactIds=guava

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

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

764
Alain O'Dea

Wenn Sie Eclipse über die Befehlszeile ausführen (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

Wenn ein Projekt ein Glas der Projektquellen erstellt und in einem Maven-Repository bereitstellt, werden Sie es finden :)

Nur zur Information, Quellenartefakte 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 in Configuring Source Plugin erläutert:

(...) Die generierte JAR-Datei wird nach dem Wert von finalName plus "-sources" benannt, wenn es sich um die Hauptquellen handelt. Andernfalls wäre es finalName plus "-test-sources", wenn es sich um die Testquellen handelt.

Der zusätzliche Text, der zur Beschreibung eines Artefakts ("-sources" oder "-test-sources") bezeichnet wird, wird Klassifikator genannt. 

Um eine Abhängigkeit von einem Artefakt zu deklarieren, das einen Klassifizierer verwendet, fügen Sie einfach das <classifier>-Element hinzu. 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 normalerweise nicht tun. Die meisten IDEs unterstützen das Herunterladen von Quellen (und/oder JavaDoc) vom Hauptartefakt, ohne explizit eine Abhängigkeit von ihnen zu erklären.

Beachten Sie schließlich auch, dass einige Suchmaschinen für das Repository die Suche nach Artefakten mithilfe des Klassifizierers ermöglichen (zumindest Nexus tut dies bei der erweiterten Suche). Siehe diese Suche zum Beispiel.

33
Pascal Thivent

Um eine spezifische Quelle oder ein javadoc herunterzuladen, müssen wir die GroupIds einschließen

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

Beachten Sie, dass der Klassifizierer nicht durch Kommas getrennt ist. Um den Javadoc herunterzuladen, müssen Sie den obigen Befehl noch einmal mit dem Klassifikator als Javadoc ausführen

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

Mit dem Plugin maven idea für IntelliJ Idea können Sie angeben, ob Quellen und Java-Dokumente aufgelöst und heruntergeladen werden sollen

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

Laden Sie Artefakte herunter 

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

Für Groovy-Quellen wäre dies der Fall 

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 in Ihrem lokalen Maven-Repository gespeichert, d. H. Normalerweise $HOME/.m2/repository.

dependency:sources lädt lediglich die Quellen der Projektabhängigkeiten herunter, nicht die Quellen der Plugins oder die Quellen der in den Plugins definierten Abhängigkeiten.

13
Maddin

in dieser verwandten Frage finden Sie Informationen: Holen Sie sich an Eclipse angehängte Quell-JAR-Dateien für von Maven verwaltete Abhängigkeiten
Wenn Sie das Eclipse-Maven-Plugin verwenden, verwenden Sie "mvn Eclipse: eclipse -DdownloadSources = true".

11
Stefan De Boey

wenn Sie Eclipse verwenden, können Sie auch Preferences> Maven öffnen und "Artifact-Quellen herunterladen" auswählen. Dies würde die pom.xml intakt lassen und Ihre Quellen oder Java-Dokumente (falls ausgewählt) nur für die Entwicklung direkt am Computerstandort ~/.m2 beibehalten

9
Gabriel Ramirez

In Eclipse

  1. Klicken Sie mit der rechten Maustaste auf den pom.xml.
  2. Wählen Sie Run As -> Maven generate-sources aus.
    Die Quelle wird standardmäßig im .m2-Ordner generiert

Voraussetzung:

Maven sollte mit Eclipse konfiguriert werden.

6
bondkn

In Eclipse - klicke auf das Projekt und dann:

 enter image description here .

4
Witold Kaczurba

NetBeans, Kontext-Klick

Klicken Sie in NetBeans 8 bei einem Maven-gesteuerten Projekt mit der rechten Maustaste auf das Listenelement der JAR-Dateiliste der Abhängigkeit, an der Sie interessiert sind. Wählen Sie Download Sources. Warten Sie einen Moment, und NetBeans lädt den Quellcode automatisch herunter und installiert ihn, sofern verfügbar. 

Ebenso können Sie Download Javadoc auswählen, um das Dokument lokal zu installieren. Anschließend können Sie im Editor mit der rechten Maustaste auf einen Code klicken und JavaDoc anzeigen. 

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

3
Basil Bourque

Sie können, wenn sie hochgeladen werden. Im Allgemeinen werden sie als "Frameworkname-Version-Source (s)" bezeichnet.

3
Bozho

Basierend auf 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 im Editor zu öffnen, für die Sie die Quellen nicht bereits heruntergeladen haben. Dies ist praktisch, wenn Sie nicht die Quelle für all Ihre Abhängigkeiten nutzen möchten, aber Sie wissen nicht, welche Sie im Voraus benötigen (und Sie Eclipse verwenden).

Ich habe am Ende @ GabrielRamierez 'Ansatz verwendet, werde aber @ PascalThivents Ansatz zukünftig verwenden. 

2
eebbesen

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, jedoch 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.

Also empfehle ich den Ansatz von Gabriel Ramirez.

1
eeezyy

Wenn Sie die groupId und aritifactId kennen, können Sie auf diese Weise eine 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!  enter image description here

 enter image description here

1
senninha

Für das Debugging können Sie auch einen "Java Decompiler" wie: JAD verwenden und die Quelle direkt dekompilieren (obwohl die generierte Quelle niemals mit der ursprünglichen Quelle identisch ist). Installieren Sie dann JAD als Plugin in Eclipse oder Ihrer bevorzugten IDE.

0
atom88