it-swarm.com.de

Rufen Sie an Eclipse for Maven-verwaltete Abhängigkeiten angehängte Quell-JAR-Dateien ab

Ich verwende Maven (und die Maven-Eclipse-Integration), um die Abhängigkeiten für meine Java) -Projekte in Eclipse zu verwalten. Die automatische Downloadfunktion für JAR-Dateien aus den Maven-Repositorys spart leider Zeit. Es enthält keine API-Dokumentation und keinen Quellcode.

Wie kann ich Maven so einrichten, dass auch die Quell- und Javadoc-Anhänge automatisch abgerufen und bei Eclipse ordnungsgemäß registriert werden?

175
Thilo

Ich bin mir sicher, dass das m2Eclipse Maven-Plugin für Eclipse genau das kann. Sie können es so konfigurieren, dass sowohl die Quelldateien als auch Javadoc automatisch für Sie heruntergeladen werden.

Gehen Sie dazu zu Fenster> Einstellungen> Maven und aktivieren Sie die Optionen "Download Artifact Sources" und "Download Artifact JavaDoc".

Screenshot of Maven Preferences

221
mrembisz
mvn Eclipse:eclipse -DdownloadSources=true

oder

mvn Eclipse:eclipse -DdownloadJavadocs=true

oder Sie können beide Flags hinzufügen, wie Spencer K betont.

Darüber hinaus ist die =true Teil ist nicht erforderlich, so können Sie verwenden

mvn Eclipse:eclipse -DdownloadSources -DdownloadJavadocs
124
Stephen Denne

Die anderen Antworten zu dieser Arbeit, aber wenn Sie sich keine Befehlszeilenargumente merken müssen, können Sie auch einfach die downloadSources- und downloadJavadocs-Konfiguration zum Abschnitt maven-Eclipse-plugin in Ihrer pom.xml hinzufügen:

<project>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-Eclipse-plugin</artifactId>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                    ... other stuff ...
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>
71
overthink

Ich ziehe es vor, keine Source/Javadoc-Download-Einstellungen in das Projekt zu setzen pom.xml-Datei, da dies meiner Meinung nach Benutzereinstellungen und keine Projekteigenschaften sind. Stattdessen platziere ich sie in einem Profil in meinem settings.xml Datei:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.Apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.Apache.org/SETTINGS/1.0.0 http://maven.Apache.org/xsd/settings-1.0.0.xsd">

  <profiles>
    <profile>
      <id>sources-and-javadocs</id>
      <properties>
        <downloadSources>true</downloadSources>
        <downloadJavadocs>true</downloadJavadocs>
      </properties>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>sources-and-javadocs</activeProfile>
  </activeProfiles>
</settings>
15
Duncan Jones

Klicken Sie mit der rechten Maustaste auf project -> maven -> download sources

9
sumeet

Wenn sich die Quell-Jars im lokalen Repository befinden und Sie die Eclipses-Maven-Unterstützung verwenden, werden die Quellen automatisch angehängt. Du kannst rennen mvn dependency:sources, um alle Quell-Jars für ein bestimmtes Projekt herunterzuladen. Ich bin mir nicht sicher, wie ich dasselbe mit der Dokumentation machen soll.

8
Hardy

Wenn Sie Meclipse verwenden, tun Sie dies

window -> maven -> Artefaktquellen herunterladen (Häkchen setzen)

(Wenn Sie immer noch das Fenster zum Anhängen der Quelle erhalten, klicken Sie auf die Schaltfläche zum Anhängen der Datei und schließen Sie das Fenster zum Anhängen der Quelle. Wenn Sie das nächste Mal versuchen, die Quelle anzuzeigen, wird die richtige Quelle geöffnet.)

Surajz

4
surajz

Ich habe Windows-> Pref ..-> Maven ausprobiert, aber es hat nicht funktioniert. Daher habe ich mit dem Befehl mvn Eclipse einen neuen Klassenpfad erstellt: eclipse -DdownloadSources = true und den Arbeitsbereich einmal aktualisiert. voila .. Quellen wurden angehängt.

Der Eintrag des Quell-Jars ist im Klassenpfad verfügbar. Somit hat der Neubau das Problem gelöst ...

3
om39a

Es gibt auch eine ähnliche Frage , die dies beantwortet und Beispiel-POM-Einstellungen enthält.

3
andrel

Es reicht manchmal nicht aus, Downloadquelle/Javadoc in der Eclipse-Maven-Präferenz zu überprüfen. Für den Fall, dass der Maven sie aus irgendeinem Grund nicht herunterladen konnte (ein Netzwerkausfall?), Erstellt der Maven einige * .lastUpdated-Dateien und lädt sie dann nie wieder herunter. Meine empirische Lösung bestand darin, das Artefaktverzeichnis aus .m2/repository zu löschen und den Eclipse-Arbeitsbereich neu zu starten, wobei Downloadquelle/Javadoc überprüft und Projekte beim Start ebenfalls überprüft wurden. Nachdem der Arbeitsbereich neu gestartet wurde, können möglicherweise einige Projekte als fehlerhaft markiert werden, während der Eclipse-Fortschritt heruntergeladen wird. Alle Fehler werden dann gelöscht. Vielleicht ist dieses Verfahren nicht so "wissenschaftlich", aber für mich ist es gelungen.

2
user17417

Wenn Sie pom für das Maven-Eclipse-Plugin so ändern, dass es source/javadoc enthält, gilt dies nur für neue Abhängigkeiten, die pom hinzugefügt werden. Wenn wir bestehende Abhängigkeiten beantragen müssen, müssen wir mvn dependency: sources ausführen. Ich habe das überprüft.

2
bnguyen82

in meiner Version von Eclipse Helios mit m2Eclipse gibt es keine

window --> maven --> Download Artifact Sources (select check)

Unter Fenster ist nur "Neues Fenster", "Neuer Editor", "Perspektive öffnen" usw.

Wenn Sie mit der rechten Maustaste auf Ihr Projekt klicken, wählen Sie maven -> download sources

Nichts passiert. Es werden keine Quellen heruntergeladen, keine POM-Dateien aktualisiert und kein Fenster mit der Frage nach den Quellen wird geöffnet.

Mvn xxx außerhalb von Eclipse auszuführen ist gefährlich - einige Befehle funktionieren nicht mit m2ecilpse - ich habe das einmal gemacht und das gesamte Projekt verloren, musste Eclipse neu installieren und von vorne beginnen.

Ich bin immer noch auf der Suche nach einer Möglichkeit, Ecilpse und Maven dazu zu bringen, die Quelle externer Gläser wie Servlet-Api zu finden und zu nutzen.

2
wingnut

Für Indigo (und wahrscheinlich Helios) befinden sich die oben genannten Kontrollkästchen hier:

Fenster -> Einstellungen -> Maven

1
Chris Romine

überdenken vorgeschlagen mit dem Setup in der POM:

<project>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-Eclipse-plugin</artifactId>
            <configuration>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
                ... other stuff ...
            </configuration>
        </plugin>
    </plgins>
</build>
...

Zuerst dachte ich, dass das Javadoc und die Quellen immer noch nicht angehängt werden (da ich es zuvor mit der Option -DdownloadSources erfolglos versucht habe).

Aber überraschen Sie - die .classpath-Datei IS) bekommt ihre Quellen und Javadoc angehängt, wenn Sie die POM-Variante verwenden!

1
jhohlfeld

Ich habe die POM-Konfiguration zum Maven-Eclipse-Plugin hinzugefügt, um Quellcode und Javadocs herunterzuladen, aber ich glaube, dass dies für neue Abhängigkeiten passieren wird, nicht für bestehende.

Für bestehende Abhängigkeiten habe ich im Paket-Explorer nach "Maven-Abhängigkeiten" gesucht und mit der rechten Maustaste auf "commons-lang-2.5.jar" geklickt und "Maven |" ausgewählt Download Sources und ... nichts schien zu passieren (kein Fortschrittsbalken oder Hinweis darauf, dass es etwas tat). Es wurde jedoch heruntergeladen, da ich jetzt in commons-lang zur Quelle springen kann.

1
unique72

Ich hatte ein ähnliches Problem und die Lösung, die für mich am besten funktionierte, bestand darin, die Quelle in das gleiche Glas wie den kompilierten Code aufzunehmen (ein bestimmtes Verzeichnis im Glas würde also sowohl Foo.Java Als auch Foo.class Enthalten. ]). Eclipse verknüpft die Quelle automatisch mit dem kompilierten Code und stellt das JavaDoc automatisch aus der Quelle bereit. Das ist natürlich nur hilfreich, wenn Sie das Artefakt kontrollieren.

0
Dan R.

Nachdem Sie die Eigenschaften entweder auf Projektebene oder auf Benutzereigenschaftenebene festgelegt haben, führen Sie bitte ein Maven -> Projekt aktualisieren (Aktualisierung erzwingen) aus. Es lädt die Quellen herunter

0
arkabhi