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.

schmmd
źródło
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>
xecaps12
źródło
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
Alexis Gamarra
źródło
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
Venkateswara Rao
źródło
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
Ghandhikus
źródło
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>
kevinarpe
źródło
7

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

Ahmad Muzakki
źródło
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>
Kraiss
źródło
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 :-).

Sasha O
źródło
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.

Pierre C.
źródło
0

Nie jestem pewien, ale powinieneś być w stanie coś zrobić, ustawiając domyślny aktywny profil w pliku settings.xml

Widzieć

Zobacz http://maven.apache.org/guides/introduction/introduction-to-profiles.html

pgbsl
źródło
Ach! Dokładnie tak, jak opisano przez @ xecaps12
pgbsl,
9
Powinieneś naprawdę skopiować odpowiednie części z linku do swojej odpowiedzi, na wypadek, gdyby URL się zepsuł.
Duncan Jones
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.

Mario Rossi
źródło
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

zielenina
źródło
0

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

<classifier>sources</classifier>
Mehdi
źródło
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>
javydreamercsw
źródło