Maven - Laden Sie immer Quellen und Javadocs herunter


244

Gibt es eine Möglichkeit, Maven so zu konfigurieren, dass immer Quellen und Javadocs heruntergeladen werden? Das -DdownloadSources=true -DdownloadJavadocs=trueAngeben jedes Mal (was normalerweise mit dem zweimaligen Ausführen von mvn compile einhergeht, weil ich das erste Mal vergessen habe) wird ziemlich mühsam.


Ist das für das Eclipse-Plugin? Du solltest sowieso nicht so oft laufen müssen ...
sjr

1
Nein, es ist für das Befehlszeilenprogramm. Ich muss es nicht sehr oft ausführen, aber es wäre großartig, wenn ich es niemals ausführen müsste!
schmmd

1
Was ist die Kommandozeile? Dies ist, wenn Sie mvn eclipse:eclipserichtig machen?
sjr

14
@sjr, ja, um Quellen und Javadocs herunterzuladen, kann man ausführenmvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
Yuriy Nakonechnyy

Ich denke, diese Frage wird immer noch nicht beantwortet. Die akzeptierte Antwort bezieht sich nur auf das Eclipse-Plugin. Die Antwort von @ AlexisGamarra ist die nächstgelegene, löst jedoch nicht die "Persistenz" der Lösung - es setzt Maven nicht ein, dies immer zu tun, wenn Sie mvn install ausführen .
Honza Zidek

Antworten:


265

Öffnen Sie Ihre Datei settings.xml ~/.m2/settings.xml (erstellen Sie sie, wenn sie nicht vorhanden ist). Fügen Sie einen Abschnitt mit den hinzugefügten Eigenschaften hinzu. Stellen Sie dann sicher, dass die activeProfiles das neue Profil enthalten.

<settings>

   <!-- ... other settings here ... -->

    <profiles>
        <profile>
            <id>downloadSources</id>
            <properties>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
            </properties>
        </profile>
    </profiles>

    <activeProfiles>
        <activeProfile>downloadSources</activeProfile>
    </activeProfiles>
</settings>

6
Ich versuche diese Profileigenschaften in Maven 2.2.1 und 3.0.2 und sie funktionieren nicht. Das Ziel-Repository ist Archiva. Irgendwelche Vorschläge, was man sonst noch probieren kann? Ich habe auch versucht, das Ziel "Abhängigkeit: Quellen" zu verwenden. Danke
jmend

18
Außerdem können Sie in Eclipse einfach zu Einstellungen -> Maven (Keine Unterkategorie) gehen. Dort können Sie "Artefaktquellen / JavaDocs herunterladen" aktivieren. Manchmal möchte Eclipse diese Datei jedoch nicht manuell erstellen (ist mir in Luna passiert). In diesem Fall - gehen Sie dorthin, fügen Sie diese Antwort in Einstellungs-Tags ein und weisen Sie Eclipse an, sie erneut zu laden, damit sie funktioniert.
Andrei Bârsan

9
Das hat bei mir funktioniert: Gehen Sie in Eclipse zu Einstellungen -> Maven (Keine Unterkategorie). Aktivieren Sie "Artefaktquelle herunterladen" - "Artefakt-JavaDocs herunterladen" - "Maven-Projekte beim Start aktualisieren" (nur weil ich den manuellen Weg nicht finden kann). Starten Sie dann Eclipse neu. Fertig
Dirk

4
Dies betrifft nur das Maven Eclipse-Plugin.
Jingguo Yao

9
Dies sollte nicht die akzeptierte Antwort sein! Wie @JingguoYao sagte, betrifft es nur das Maven Eclipse-Plugin. Die ursprüngliche Frage war nicht an Eclipse gebunden, sondern an den Maven selbst.
Honza Zidek

195

In meinem Fall hat die Lösung "settings.xml" nicht funktioniert, daher verwende ich diesen Befehl, um alle Quellen herunterzuladen:

mvn dependency:sources

Sie können es auch mit anderen Maven-Befehlen verwenden, zum Beispiel:

mvn clean install dependency:sources -Dmaven.test.skip=true

Verwenden Sie den folgenden Befehl, um die gesamte Dokumentation herunterzuladen:

mvn dependency:resolve -Dclassifier=javadoc

1
Ich denke, diese Frage wird immer noch nicht beantwortet. Die akzeptierte Antwort bezieht sich nur auf das Eclipse-Plugin. Ihre Antwort ist die nächstgelegene, löst jedoch nicht die "Persistenz" der Lösung - sie setzt Maven nicht dazu ein, dies immer zu tun, wenn Sie mvn install ausführen .
Honza Zidek

52

Nur den einzelnen Befehl konsolidieren und vorbereiten, um den Quell- und Dokumentendownload zu adressieren ...

mvn dependency:sources dependency:resolve -Dclassifier=javadoc

42

Antwort für Leute von Google

In Eclipse können Sie Javadoc und Quellen automatisch herunterladen .

Klicken Sie dazu mit der rechten Maustaste auf das Projekt und verwenden Sie

  • Maven -> JavaDoc herunterladen
  • Maven -> Quellen herunterladen

3
Und in IDEA können Sie mit der rechten Maustaste auf das Modul klicken, und unter dem Maven-Menü gibt es eine Option zum Herunterladen von Quellen und / oder Dokumentationen
forresthopkinsa

@ Betlista las die erste Zeile des Beitrags. Viele Leute gehen von Google nach hier und suchen nach etwas anderem. Aber am Ende gehen Sie hier
rein

14

Ich verwende Maven 3.3.3 und kann das Standardprofil nicht für einen Benutzer oder eine globale settings.xmlDatei verwenden.

Um dieses Problem zu umgehen, können Sie Ihrer pom.xmlDatei auch ein zusätzliches Build-Plugin hinzufügen .

<properties>
    <maven-dependency-plugin.version>2.10</maven-dependency-plugin.version>
</properties>
<build>
    <plugins>
        <!-- Download Java source JARs. -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>${maven-dependency-plugin.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>sources</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

7

Auf NetBeans : Öffnen Sie Ihren Projektexplorer-> Abhängigkeiten -> [ file.jar ] Rechtsklick-> Javadoc herunterladen


4

Wie @ xecaps12 sagte, besteht der einfachste / effizienteste Ansatz darin, Ihre Maven-Einstellungsdatei (~ / .m2 / settings.xml) zu ändern. Wenn es sich jedoch um eine Standardeinstellung für Sie handelt, können Sie sie auch so einstellen

<profile>
  <id>downloadSources</id>
  <activation>
    <activeByDefault>true</activeByDefault>
  </activation>
  <properties>
      <downloadSources>true</downloadSources>
      <downloadJavadocs>true</downloadJavadocs>
  </properties>
</profile>

Dies funktioniert nicht wirklich. Sie deklarieren lediglich nicht verwendete globale Eigenschaften. Ich glaube, die mythische Lösung kam von maven-eclipse-plugin: maven.apache.org/plugins/maven-eclipse-plugin/examples/…
inanutshellus

Nein, es ist nur eine Vereinfachung der "aufgelösten" Antwort;)
Kraiss

1
Die "aufgelöste" Version funktioniert auch nicht. (Ich habe den gleichen Kommentar auch dort gemacht, ihn aber vorübergehend entfernt, während ich mit Ihnen gesprochen habe.) Also - sagen Sie, dass Ihre Antwort (und damit die gelöste Antwort) tatsächlich für Sie funktioniert? Ich meine, 159 Leute haben diese falsche oder veraltete Antwort hochgeladen, also funktioniert sie eindeutig für jemanden. Wenn es funktioniert, wie Sie sagen, dann mache ich etwas falsch, ebenso wie die verschiedenen Personen, die die gelöste Antwort in ihren Kommentaren finden, und ich würde das gerne lernen und das zum Laufen bringen.
Inanutshellus

Ich nehme an, diese globalen Variablen werden vom Eclipse-Plugin überprüft, wenn Sie tatsächlich mit Eclise entwickeln. Das Abrufen der Quelle erfolgt durch Eclipse und nicht durch Maven in der Befehlszeile.
Jonatan Cloutier

1

Ich denke, es kann per Plugin gemacht werden. Siehe dieses Kapitel aus dem Maven-Buch.

Möglicherweise können Sie das Abhängigkeits-Plugin so konfigurieren, dass Quellen heruntergeladen werden (obwohl ich es selbst nicht ausprobiert habe :-).


1

In Netbeans können Sie Maven anweisen, Javadoc bei jedem geöffneten Projekt zu überprüfen:

Tools| Options| JavaSymbol | MavenRegisterkarte | DependenciesKategorie | Check JavadocDropdown auf eingestelltEvery Project Open .

Schließen Sie Netbeans und öffnen Sie es erneut. In der Statusleiste wird Maven Javadocs herunterladen.



0

Ändern Sie einfach die Datei mvn(oder mvn.cmdin Windows) und fügen Sie die gewünschten Befehlszeilenoptionen hinzu (wie in anderen Antworten erwähnt). Wenn Sie die Installationsdateien nicht ändern möchten (was ich empfehlen würde), erstellen Sie einen mymvn(oder mymvn.cmd) Wrapper, der den regulären Wrapper mvnmit den Parametern aufruft .


0

Ich musste KeyStore verwenden, um die Gläser herunterzuladen. Wenn Sie Probleme mit Zertifikaten haben, können Sie diesen Ansatz verwenden:

mvn clean install dependency:sources -Dmaven.test.skip=true -Djavax.net.ssl.trustStore="Path_To_Your_KeyStore"

Wenn Sie wissen möchten, wie KeyStores erstellt werden, ist dies ein sehr guter Link: Probleme bei der Verwendung von Maven und SSL hinter dem Proxy


0

Für die Quellen auf Abhängigkeitsebene (pom.xml) können Sie Folgendes hinzufügen:

<classifier>sources</classifier>

0

Um die Antwort von Kevinarpe weiterzuverfolgen, tun dies sowohl Quellen als auch Javadocs:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>sources</goal>
                            <goal>resolve</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <classifier>javadoc</classifier>
                </configuration>
            </plugin>
        </plugins>
    </build>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.