Kiedy korzystasz z Maven w IDE, często potrzebujesz IDE do rozwiązania kodu źródłowego i Javadocs w zależności od bibliotek. Jest łatwy sposób na osiągnięcie tego celu.
Pierwsze polecenie spróbuje pobrać kod źródłowy dla każdej zależności w pliku pom.
Drugie polecenie spróbuje pobrać Javadocs.
Maven jest na łasce pakujących bibliotek. Więc niektóre z nich nie będą miały spakowanego kodu źródłowego, a wiele z nich nie będzie miało Javadocs.
Jeśli masz wiele zależności, dobrym pomysłem może być również włączenie / wykluczenie w celu uzyskania określonych artefaktów, następujące polecenie na przykład pobierze tylko źródła zależności o określonym artefakcie:
Umieszcza je w tym samym katalogu, co binarne pliki JAR w M2_HOME.
Alain O'Dea,
19
Jeśli korzystasz z Eclipse, pomocne może być także wykonanie później „mvn eclipse: eclipse”, a następnie odświeżenie projektu w Eclipse - oszczędza to ręcznego dołączania źródeł do każdego pliku.
unigeek
1
Nie mogę znaleźć źródeł i javadocs po ich pobraniu. Sprawdziłem każdy katalog pod M2_HOME
Patrick Kiernan
2
Po mvn dependency:resolve -Dclassifier=javadocIntelliJ IDEA automatycznie zauważa javadocs, co jest bardzo miłe.
Jonik
89
Konfigurowanie i uruchamianie wtyczki maven-eclipse (na przykład z wiersza poleceń mvn eclipse:eclipse)
Co masz na myśli? Czy masz na myśli to, że źródła i dokumenty są pobierane po uruchomieniu, mvn eclipse:eclipsejeśli dodasz to do pliku POM?
Lii
3
Tak. Proste.
RobAu,
@RobAu, gdzie zostanie pobrane źródło, czy zostanie ono dołączone do projektu samodzielnie, czy gdzieś indziej?
Jaskey,
1
Zostanie pobrany jako słoik na twój M2_REPOjako xxxx-yy-sources.jar, w tej samej lokalizacji, co zwykły słoik. Zostanie dołączony jako kod źródłowy słoika xxxx-yy w bibliotekach
RobAu,
1
@KanagaveluSugumar musisz dodać M2_REPO do zaćmienia, a następnie po prostu odświeżyć projekt.
RobAu
36
Jeśli projekt utworzy jar źródeł projektu i wdroży go do repozytorium maven, znajdziesz go :)
Po prostu FYI, artefakty źródłowe są generalnie tworzone przez wtyczkę maven-source . Ta wtyczka może łączyć główne lub testowe źródła projektu w archiwum jar i, jak wyjaśniono w Konfigurowanie wtyczki źródłowej :
(...) Wygenerowany plik jar zostanie nazwany wartością finalNameplus „-sources”, jeśli jest to główne źródło. W przeciwnym razie byłoby to finalName„-test-sources”, jeśli jest to źródło testowe.
Dodatkowy tekst podano w celu opisania artefaktu (tutaj „-sources” lub „-test-sources”) nazywa się klasyfikatorem.
Aby zadeklarować zależność od artefaktu korzystającego z klasyfikatora, wystarczy dodać <classifier>element. Na przykład:
Zauważ, że generalnie tego nie robisz, większość IDE zapewnia obsługę źródeł pobierania (i / lub JavaDoc) z głównego artefaktu bez wyraźnego zadeklarowania zależności od nich.
Na koniec zauważ również, że niektóre wyszukiwarki repozytoriów pozwalają na wyszukiwanie artefaktów za pomocą klasyfikatora (przynajmniej Nexus robi to z wyszukiwaniem zaawansowanym). Zobacz na przykład to wyszukiwanie .
Czy zamiast pobierać źródła dla wszystkich zależności, czy można pobierać tylko niektóre zależności, określając je w pom wraz z samą zależnością, może b poprzez jakiś wewnętrzny znacznik w tagu zależności lub coś podobnego?
nanosoft,
Ta wtyczka została
wycofana
18
Aby pobrać określone źródło lub javadoc , musimy dołączyć GroupIds - Jest to wartość oddzielona przecinkami, jak pokazano poniżej
Czy zamiast pobierać źródła dla wszystkich zależności, czy można pobierać tylko niektóre zależności, określając je w pom wraz z samą zależnością, może b poprzez jakiś wewnętrzny znacznik w tagu zależności lub coś podobnego?
Kiedy podążyłem za odpowiedzią @ RobAu, tylko pliki Hibernacji są pobierane z repozytorium, a nie Spring . Następnie odwiedzam link, który podałeś i śledziłem @ mrembisz, wprowadzam zmiany w preferencjach Mavena i działa jak urok. Dostaję Spring Docs . @Stefan De Boey Dzięki za udostępnienie tego. +1.
OO7
9
jeśli używasz Eclipse, możesz także otworzyć Preferencje> Maven i wybrać Pobierz źródła artefaktów, to pomogłoby zachować pom.xml nienaruszone i zachować twoje źródła lub dokumenty java (jeśli zaznaczone) tylko do programowania bezpośrednio w miejscu twojego komputera ~ / .m2
Odznałem opcję „pobieraj źródła artefaktów” przy ustawieniu zaćmienia zaćmienia, więc pobiera tylko słoik. Ale później próbowałem użyć tego rozwiązania do pobrania źródła, nie udało się to bez żadnej wiadomości. Usunąłem folder jar w lokalnym repozytorium maven i ponownie pobrałem jar, a następnie powiodło się pobieranie jar jar. Myślę, że dzieje się tak, ponieważ lokalne repozytorium maven ma słoik, więc nie mogę użyć tej metody do pobrania źródła.
szczery
4
Możesz, jeśli są przesłane. Zasadniczo nazywane są one „frameworkname-version-source (s)”
W NetBeans 8 z projektem opartym na Maven wystarczy kliknąć kontekstowo element listy plików jar zależności, którą jesteś zainteresowany. WybieraćDownload Sources . Poczekaj chwilę, a NetBeans automatycznie pobierze i zainstaluje kod źródłowy, jeśli jest dostępny.
Podobnie możesz wybrać Download Javadoclokalną instalację dokumentu. Następnie możesz kliknąć kontekstowo jakiś kod w edytorze i wybrać widok JavaDoc.
Na podstawie oglądania konsoli Maven w Eclipse (Kepler) źródła zostaną automatycznie pobrane dla zależności Maven, jeśli spróbujesz otworzyć klasę ze wspomnianej zależności Maven w edytorze, dla którego nie masz już pobranych źródeł. Jest to przydatne, gdy nie chcesz pobierać źródła dla wszystkich swoich zależności, ale nie wiesz, które z nich chcesz wcześniej (i używasz Eclipse).
Użyłem również wtyczki Eclipse, aby wprowadzić projekt do przestrzeni roboczej Eclipse. Ponieważ pracowałem nad innym projektem, zauważyłem, że można pracować z Eclipse, ale bez wtyczki maven-eclipse. To sprawia, że jest łatwiejszy w użyciu w różnych środowiskach i umożliwia łatwe użycie maven zamiast zaćmienia. I to bez zmiany pliku pom.xml.
Do debugowania można również użyć „dekompilatora Java”, takiego jak: JAD i dekompilować źródło w locie (chociaż wygenerowane źródło nigdy nie jest takie samo jak oryginał). Następnie zainstaluj JAD jako wtyczkę w Eclipse lub w swoim ulubionym IDE.
W przeciwnym razie zawsze możesz „sklonować” repozytorium z github, jeśli jest ono dostępne i uzyskać określony kod.
Jak wyjaśnili inni, możesz użyć polecenia „zależność mvn: sources”, aby uzyskać jar i generowanie źródeł dla używanej zależności.
Uwaga: Niektóre zależności nie będą miały pliku sources.jar, ponieważ nie zawierają one kodu źródłowego, ale plik pom. np. sprężyna rozruchowa-urządzenie uruchamiające . Jak w tym przypadku:
Startowe POM to zestaw wygodnych deskryptorów zależności, które można dołączyć do aplikacji. Uzyskujesz kompleksową obsługę wszystkich narzędzi Spring i powiązanych technologii, których potrzebujesz, bez konieczności przeszukiwania przykładowego kodu i kopiowania mnóstwa deskryptorów zależności.
Jeśli chcesz ręcznie znaleźć źródłowy plik jar dla dowolnego artefaktu, przejdź do lokalizacji repozytorium maven dla konkretnego artefaktu, a następnie w folderze Pliki kliknij „zobacz wszystko”. Możesz znaleźć źródłowy plik jar.
Odpowiedzi:
Źródło: http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/
Dokumentacja: https://maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html
źródło
mvn dependency:resolve -Dclassifier=javadoc
IntelliJ IDEA automatycznie zauważa javadocs, co jest bardzo miłe.Konfigurowanie i uruchamianie wtyczki maven-eclipse (na przykład z wiersza poleceń
mvn eclipse:eclipse
)źródło
mvn eclipse:eclipse
jeśli dodasz to do pliku POM?M2_REPO
jako xxxx-yy-sources.jar, w tej samej lokalizacji, co zwykły słoik. Zostanie dołączony jako kod źródłowy słoika xxxx-yy w bibliotekachJeśli projekt utworzy jar źródeł projektu i wdroży go do repozytorium maven, znajdziesz go :)
Po prostu FYI, artefakty źródłowe są generalnie tworzone przez wtyczkę maven-source . Ta wtyczka może łączyć główne lub testowe źródła projektu w archiwum jar i, jak wyjaśniono w Konfigurowanie wtyczki źródłowej :
Dodatkowy tekst podano w celu opisania artefaktu (tutaj „-sources” lub „-test-sources”) nazywa się klasyfikatorem.
Aby zadeklarować zależność od artefaktu korzystającego z klasyfikatora, wystarczy dodać
<classifier>
element. Na przykład:Zauważ, że generalnie tego nie robisz, większość IDE zapewnia obsługę źródeł pobierania (i / lub JavaDoc) z głównego artefaktu bez wyraźnego zadeklarowania zależności od nich.
Na koniec zauważ również, że niektóre wyszukiwarki repozytoriów pozwalają na wyszukiwanie artefaktów za pomocą klasyfikatora (przynajmniej Nexus robi to z wyszukiwaniem zaawansowanym). Zobacz na przykład to wyszukiwanie .
źródło
Maven plugin pomysł na IntelliJ Idea pozwala określić, czy źródła i java doc powinien zostać rozwiązany i pobranych
źródło
Aby pobrać określone źródło lub javadoc , musimy dołączyć GroupIds - Jest to wartość oddzielona przecinkami, jak pokazano poniżej
Zauważ, że klasyfikator nie jest oddzielony przecinkami, aby pobrać javadoc, musimy ponownie uruchomić powyższą komendę z klasyfikatorem jako javadoc
źródło
Aby pobrać dowolne użycie artefaktu
Dla źródeł Groovy byłoby to
Do javadoka Groovy'ego użyłbyś
To umieszcza dany artefakt w lokalnym repozytorium Maven, tj. Zwykle
$HOME/.m2/repository
. .dependency:sources
po prostu pobiera źródła zależności projektu, a nie źródła wtyczek ani źródła zależności zdefiniowane w wtyczkach.źródło
informacje można znaleźć w tym powiązanym pytaniu: Pobierz źródłowe pliki jar dołączone do Eclipse dla zależności zarządzanych przez Maven,
jeśli używasz wtyczki eclipse maven, a następnie użyj „mvn eclipse: eclipse -DdownloadSources = true”
źródło
jeśli używasz Eclipse, możesz także otworzyć Preferencje> Maven i wybrać Pobierz źródła artefaktów, to pomogłoby zachować pom.xml nienaruszone i zachować twoje źródła lub dokumenty java (jeśli zaznaczone) tylko do programowania bezpośrednio w miejscu twojego komputera ~ / .m2
źródło
W Eclipse
pom.xml
Run As
->Maven generate-sources
domyślnie wygeneruje źródło w folderze .m2
Warunek wstępny:
Maven powinien być skonfigurowany z Eclipse.
źródło
W Eclipse - kliknij projekt, a następnie:
.
źródło
Możesz, jeśli są przesłane. Zasadniczo nazywane są one „frameworkname-version-source (s)”
źródło
NetBeans, kliknięcie kontekstowe
W NetBeans 8 z projektem opartym na Maven wystarczy kliknąć kontekstowo element listy plików jar zależności, którą jesteś zainteresowany. Wybierać
Download Sources
. Poczekaj chwilę, a NetBeans automatycznie pobierze i zainstaluje kod źródłowy, jeśli jest dostępny.Podobnie możesz wybrać
Download Javadoc
lokalną instalację dokumentu. Następnie możesz kliknąć kontekstowo jakiś kod w edytorze i wybrać widok JavaDoc.źródło
Na podstawie oglądania konsoli Maven w Eclipse (Kepler) źródła zostaną automatycznie pobrane dla zależności Maven, jeśli spróbujesz otworzyć klasę ze wspomnianej zależności Maven w edytorze, dla którego nie masz już pobranych źródeł. Jest to przydatne, gdy nie chcesz pobierać źródła dla wszystkich swoich zależności, ale nie wiesz, które z nich chcesz wcześniej (i używasz Eclipse).
Skończyło się na użyciu podejścia @ GabrielRamierez , ale w przyszłości zastosuję podejście @ PascalThivent .
źródło
Jeśli znasz groupId i aritifactId , możesz wygenerować adres URL pobierania w ten sposób.
http://central.maven.org/maven2/ch/qos/logback/logback-classic/
a dostaniesz taką stronę, wybierz potrzebną wersję, po prostu ciesz się!
źródło
Użyłem również wtyczki Eclipse, aby wprowadzić projekt do przestrzeni roboczej Eclipse. Ponieważ pracowałem nad innym projektem, zauważyłem, że można pracować z Eclipse, ale bez wtyczki maven-eclipse. To sprawia, że jest łatwiejszy w użyciu w różnych środowiskach i umożliwia łatwe użycie maven zamiast zaćmienia. I to bez zmiany pliku pom.xml.
Dlatego zalecam podejście Gabriela Ramireza.
źródło
Do debugowania można również użyć „dekompilatora Java”, takiego jak: JAD i dekompilować źródło w locie (chociaż wygenerowane źródło nigdy nie jest takie samo jak oryginał). Następnie zainstaluj JAD jako wtyczkę w Eclipse lub w swoim ulubionym IDE.
źródło
Repozytoria Maven zapewniają prosty sposób pobierania słoika źródeł.
Wyjaśnię to za pomocą demonstracji „Spring-boot-aktuator-autoconfigure”.
W przeciwnym razie zawsze możesz „sklonować” repozytorium z github, jeśli jest ono dostępne i uzyskać określony kod.
Jak wyjaśnili inni, możesz użyć polecenia „zależność mvn: sources”, aby uzyskać jar i generowanie źródeł dla używanej zależności.
Uwaga: Niektóre zależności nie będą miały pliku sources.jar, ponieważ nie zawierają one kodu źródłowego, ale plik pom. np. sprężyna rozruchowa-urządzenie uruchamiające . Jak w tym przypadku:
Odniesienia: Wprowadzenie do Spring Boot Starters
źródło
W IntelliJ IDEA możesz automatycznie pobierać źródła artefaktów podczas importowania, włączając opcję Automatycznie pobieraj źródła:
Settings
→Build, Execution, Deployment
→Build Tools
→Maven
→Importing
źródło
Jeśli chcesz ręcznie znaleźć źródłowy plik jar dla dowolnego artefaktu, przejdź do lokalizacji repozytorium maven dla konkretnego artefaktu, a następnie w folderze Pliki kliknij „zobacz wszystko”. Możesz znaleźć źródłowy plik jar.
źródło