Maven - zawsze pobieraj źródła i javadocs


244

Czy istnieje sposób, w jaki mogę skonfigurować maven, aby zawsze pobierał źródła i javadoki? Podawanie -DdownloadSources=true -DdownloadJavadocs=trueza każdym razem (co zwykle idzie w parze z dwukrotnym uruchomieniem kompilacji mvn, ponieważ zapomniałem po raz pierwszy) staje się dość nużące.


Czy to dotyczy wtyczki Eclipse? Zresztą nie powinieneś tak często biegać ...
srr

1
Nie, dotyczy programu wiersza poleceń. Nie muszę go uruchamiać zbyt często, ale byłoby wspaniale, gdybym musiał uruchamiać go nigdy!
schmmd,

1
Co to jest linia poleceń? To kiedy masz mvn eclipse:eclipserację?
SJR

14
@sjr, tak, aby pobrać źródła i javadoki, można wykonaćmvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
Yuriy Nakonechnyy

Myślę, że na to pytanie wciąż nie ma odpowiedzi. Akceptowana odpowiedź dotyczy tylko wtyczki Eclipse. @ Odpowiedź AlexisGamarra jest najbliższa, ale nie rozwiązuje „trwałości” rozwiązania - nie ustawia Maven, aby zawsze robił to zawsze, gdy uruchamiasz instalację mvn .
Honza Zidek

Odpowiedzi:


265

Otwórz plik settings.xml ~/.m2/settings.xml (utwórz go, jeśli nie istnieje). Dodaj sekcję z dodanymi właściwościami. Następnie upewnij się, że activeProfiles zawiera nowy profil.

<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
Próbuję tych właściwości profilu w Maven 2.2.1 i 3.0.2 i one nie działają. Repozytorium docelowe to Archiva. Wszelkie sugestie dotyczące tego, co jeszcze można wypróbować? Próbowałem także użyć celu zależność: źródła. Dzięki
jmend

18
Co więcej, w Eclipse możesz po prostu przejść do Preferencji -> Maven (Brak podkategorii). Tam możesz zaznaczyć „Pobierz źródła artefaktów / JavaDocs”. Czasami jednak Eclipse nie chce ręcznie tworzyć tego pliku (zdarzyło mi się to w Lunie). W takim przypadku - idź tam, wklej tę odpowiedź zapakowaną w tagi ustawień i powiedz Eclipse, aby ponownie ją załadowała, i powinna działać.
Andrei Bârsan

9
To działało dla mnie: w Eclipse przejdź do Preferencje -> Maven (Brak podkategorii). Zaznacz - „Pobierz źródło artefaktu” - „Pobierz JavaDocs artefaktu” - „Aktualizuj projekty Maven przy starcie” (tylko dlatego, że nie mogę znaleźć ręcznego sposobu) Następnie uruchom ponownie Eclipse. Sporządzono
Dirk

4
To działa tylko na wtyczkę Maven Eclipse.
Jingguo Yao

9
To nie powinna być zaakceptowana odpowiedź! Jak stwierdził @JingguoYao, wpływa to tylko na wtyczkę Maven Eclipse. Pierwotne pytanie nie było związane z Eclipse, ale z samym Maven.
Honza Zidek

195

W moim przypadku rozwiązanie „settings.xml” nie działało, więc używam tego polecenia, aby pobrać wszystkie źródła:

mvn dependency:sources

Możesz go również używać z innymi poleceniami maven, na przykład:

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

Aby pobrać całą dokumentację, użyj następującego polecenia:

mvn dependency:resolve -Dclassifier=javadoc

1
Myślę, że na to pytanie wciąż nie ma odpowiedzi. Akceptowana odpowiedź dotyczy tylko wtyczki Eclipse. Twoja odpowiedź jest najbliższa, ale nie rozwiązuje problemu „trwałości” rozwiązania - nie ustawia Maven, aby zawsze robił to za każdym razem, gdy uruchamiasz instalację mvn .
Honza Zidek

52

Po prostu konsoliduję i przygotowałem jedno polecenie do pobrania źródła i dokumentów ...

mvn dependency:sources dependency:resolve -Dclassifier=javadoc

42

Odpowiedz dla osób z Google

W Eclipse możesz automatycznie pobierać javadoc i źródła .

Aby to zrobić, kliknij projekt prawym przyciskiem myszy i użyj

  • Maven -> Pobierz JavaDoc
  • Maven -> Źródła pobierania

3
W IDEA możesz kliknąć Moduł prawym przyciskiem myszy, a pod menu Maven dostępna jest opcja pobierania źródeł i / lub dokumentacji
forresthopkinsa

@Betlista przeczytał pierwszą linię postu. Wiele osób przechodzi z Google do tutaj, szukając czegoś innego. Ale ostatecznie trafiają tutaj, nawet z różnymi słowami kluczowymi
Ghandhikus

14

Korzystam z Maven 3.3.3 i nie mogę uzyskać domyślnego profilu do pracy w pliku użytkownika lub settings.xmlpliku globalnym .

Aby obejść ten problem, możesz również dodać dodatkową wtyczkę kompilacji do swojego pom.xmlpliku.

<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

W NetBeans : otwórz eksplorator projektu-> Zależności -> [ plik.jar ] kliknij prawym przyciskiem myszy- > Pobierz Javadoc


4

Jak powiedział @ xecaps12, najprostszym / najskuteczniejszym podejściem jest zmiana pliku ustawień Maven (~ / .m2 / settings.xml), ale jeśli jest to ustawienie domyślne , możesz również ustawić go w ten sposób

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

To tak naprawdę nie działa, po prostu deklarujesz nieużywane właściwości globalne. Wierzę, że mityczne rozwiązanie pochodzi z maven-eclipse-plugin: maven.apache.org/plugins/maven-eclipse-plugin/examples/…
inanutshellus

Nie, to tylko uproszczenie „rozstrzygniętej” odpowiedzi;)
Kraiss,

1
Wersja „rozwiązana” też nie działa. (Też zrobiłem tam ten sam komentarz, ale usunąłem go tymczasowo, kiedy się z tobą rozmawiam). Więc - czy mówisz, że twoja odpowiedź (a więc odpowiedź rozwiązana) naprawdę dla ciebie działa? Mam na myśli, że 159 osób przesłało tę błędną lub nieaktualną odpowiedź, więc dla kogoś to działa. Jeśli to działa, jak mówisz, to ja robię coś źle, podobnie jak kilka osób na postanowiło odpowiedzi w swoich uwagach, a ja uwielbiam się uczyć, że i dostać że praca.
inanutshellus

Podejrzewam, że te globalne zmienne są sprawdzane przez wtyczkę eclipse, kiedy faktycznie rozwijasz się z eclise. pobieranie źródła odbywa się przez zaćmienie, a nie przez maven w wierszu poleceń.
Jonatan Cloutier

1

Myślę, że można to zrobić za pomocą wtyczki. Zobacz ten rozdział z książki Maven.

Możesz być w stanie skonfigurować wtyczkę zależności do pobierania źródeł (nawet jeśli sam tego nie próbowałem :-).


1

W Netbeans możesz polecić Maven sprawdzenie javadoc przy każdym otwartym projekcie:

Tools| Options| Javaikona | Maventab | Dependencieskategoria | Check Javadocrozwijane ustawione na Every Project Open.

Zamknij i ponownie otwórz Netbeans, a zobaczysz, że Maven pobiera javadocs na pasku stanu.



0

Po prostu zmodyfikuj plik mvn(lub mvn.cmdjeśli w systemie Windows) i dodaj dowolne przełączniki wiersza poleceń (jak wspomniano w innych odpowiedziach). Jeśli nie chcesz modyfikować plików instalacyjnych (co polecam), utwórz mymvn(lub mymvn.cmd) opakowanie, które wywołuje normalne mvnz parametrami.


0

Musiałem użyć KeyStore, aby pobrać słoiki. Jeśli masz jakieś problemy związane z certyfikatem, możesz zastosować to podejście:

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

Jeśli chcesz wiedzieć, jak utworzyć KeyStores, jest to bardzo dobry link: problemy z używaniem Maven i SSL za serwerem proxy


0

Do źródeł na poziomie zależności (pom.xml) możesz dodać:

<classifier>sources</classifier>

0

Aby odpowiedzieć na odpowiedź kevinarpe, robi to zarówno źródła, jak i 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>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.