Saat Anda menggunakan Maven dalam IDE, Anda sering menemukan kebutuhan untuk IDE Anda untuk menyelesaikan kode sumber dan Javadocs untuk dependensi library Anda. Ada cara mudah untuk mencapai tujuan itu.
Perintah pertama akan mencoba mengunduh kode sumber untuk setiap dependensi dalam file pom Anda.
Perintah kedua akan mencoba mengunduh Javadocs.
Maven ada di tangan para pembuat paket perpustakaan di sini. Jadi beberapa dari mereka tidak akan memiliki paket kode sumber dan banyak dari mereka tidak memiliki Javadocs.
Jika Anda memiliki banyak dependensi, mungkin juga merupakan ide yang baik untuk menggunakan inklusi / pengecualian untuk mendapatkan artefak tertentu, perintah berikut akan misalnya hanya mengunduh sumber untuk dependensi dengan artifactId tertentu:
Itu menempatkan mereka di direktori yang sama dengan JAR biner di bawah M2_HOME.
Alain O'Dea
19
Jika Anda menggunakan eclipse, mungkin juga bermanfaat untuk melakukan "mvn eclipse: eclipse" sesudahnya dan kemudian menyegarkan proyek Anda di eclipse - menyelamatkan Anda dari melampirkan sumber secara manual ke setiap file.
unigeek
1
Saya tidak dapat menemukan sumber dan javadocs setelah diunduh. Saya telah memeriksa setiap direktori di bawah M2_HOME
Patrick Kiernan
2
Setelah mvn dependency:resolve -Dclassifier=javadocIntelliJ IDEA secara otomatis memperhatikan javadocs, yang sangat bagus.
Jonik
89
Mengkonfigurasi dan menjalankan plugin maven-eclipse, (misalnya dari baris perintah mvn eclipse:eclipse)
Apa maksudmu? Apakah maksud Anda bahwa sumber dan dokumen diunduh saat Anda menjalankannya mvn eclipse:eclipsejika Anda menambahkan ini ke file POM?
Lii
3
Iya. Sederhana seperti itu.
RobAu
@RobAu, di mana sumbernya akan diunduh, apakah itu akan dilampirkan ke proyek itu sendiri atau di tempat lain?
Jaskey
1
Ini akan diunduh sebagai tabung di Anda M2_REPOsebagai xxxx-yy-sources.jar, di lokasi yang sama dengan tabung normal. Ini akan dilampirkan sebagai kode sumber untuk tabung xxxx-yy di perpustakaan
RobAu
1
@ KanagaveluSugumar Anda perlu menambahkan M2_REPO ke gerhana, dan kemudian menyegarkan kembali proyek.
RobAu
36
Jika suatu proyek membuat toples dari sumber proyek dan menyebarkannya ke repositori pakar, maka Anda akan menemukannya :)
Hanya FYI, artefak sumber umumnya dibuat oleh maven-source-plugin . Plugin ini dapat membundel sumber utama atau menguji suatu proyek ke dalam tabung jar dan, seperti yang dijelaskan dalam Mengkonfigurasi Sumber Plugin :
(...) File jar yang dihasilkan akan dinamai dengan nilai finalNametambah "-sumber" jika itu adalah sumber utama. Kalau tidak, itu akan menjadi finalNameplus "-test-sources" jika itu adalah sumber tes.
Teks tambahan diberikan untuk menggambarkan artefak ("-sumber" atau "-test-sources" di sini) disebut classifier.
Untuk mendeklarasikan ketergantungan pada artefak yang menggunakan classifier, cukup tambahkan <classifier>elemen. Sebagai contoh:
Perhatikan bahwa Anda biasanya tidak melakukan ini, sebagian besar IDE memberikan dukungan untuk mengunduh sumber (dan / atau JavaDoc) dari artefak utama tanpa menyatakan secara eksplisit ketergantungan pada sumber tersebut.
Terakhir, perhatikan juga bahwa beberapa mesin pencari repositori memungkinkan pencarian artefak menggunakan penggolong (setidaknya Nexus tidak dengan pencarian lanjutan). Lihat pencarian ini misalnya.
Alih-alih mengunduh sumber untuk semua dependensi, mungkinkah mengunduh hanya untuk beberapa dependensi dengan menentukannya dalam pom bersama dengan dependensi itu sendiri, dapatkah b melalui tag dalam pada tag dependensi atau yang serupa?
nanosoft
Plugin ini sudah Pensiun
kiltek
18
Untuk mengunduh beberapa sumber atau javadoc tertentu, kita perlu memasukkan GroupIds - ini adalah nilai yang dipisahkan koma seperti yang ditunjukkan di bawah ini
Perhatikan bahwa classifier tidak dipisahkan koma, untuk mengunduh javadoc kita perlu menjalankan perintah di atas sekali lagi dengan classifier sebagai javadoc
Alih-alih mengunduh sumber untuk semua dependensi, mungkinkah mengunduh hanya untuk beberapa dependensi dengan menentukannya dalam pom bersama dengan dependensi itu sendiri, dapatkah b melalui tag dalam pada tag dependensi atau yang serupa?
Ini adalah satu-satunya solusi yang berhasil untuk saya. Saya menggunakan Eclipse Kepler. Karena ini membuat referensi yang tepat di .classpath . Seperti yang berikut ini:
Ketika saya mengikuti @ RobAu menjawab hanya Hibernate Docs yang diunduh dari repo, bukan Spring . Kemudian saya mengunjungi tautan yang Anda berikan & ikuti @ mrembisz & buat perubahan pada preferensi Maven & berfungsi seperti pesona. Saya mendapatkan Spring Documents . @Stefan De Boey Terima kasih telah berbagi ini. +1.
OO7
9
jika Anda menggunakan eclipse, Anda juga bisa membuka Preferensi> Maven dan pilih Unduh Sumber Artefak, ini akan membiarkan pom.xml tetap utuh dan menjaga sumber atau dokumen java (jika dipilih) hanya untuk pengembangan tepat di lokasi mesin Anda ~ / .m2
Saya menghapus centang 'unduh sumber artefak' di pengaturan gerhana, sehingga hanya mengunduh toples. Tetapi yang terakhir, saya mencoba menggunakan solusi ini untuk mengunduh sumber, gagal tanpa pesan apa pun. Saya menghapus folder toples di repositori lokal maven dan mengunduh toples lagi, kemudian toples sumber berhasil diunduh. Saya pikir ini karena repositori maven lokal memiliki toples, jadi saya tidak dapat menggunakan metode ini untuk mengunduh sumbernya.
jujur
4
Anda dapat, jika diunggah. Umumnya mereka disebut "frameworkname-version-source (s)"
Di NetBeans 8 dengan proyek berbasis Maven, hanya klik konteks pada item daftar file jar dari ketergantungan yang Anda minati. MemilihDownload Sources . Tunggu sebentar dan NetBeans akan secara otomatis mengunduh dan menginstal kode sumber, jika tersedia.
Anda juga dapat memilih Download Javadocuntuk menginstal dokumen secara lokal. Kemudian Anda dapat mengklik konteks beberapa kode di editor dan memilih untuk melihat JavaDoc.
Berdasarkan menonton konsol Maven di Eclipse (Kepler), sumber akan secara otomatis diunduh untuk ketergantungan Maven jika Anda mencoba untuk membuka kelas dari kata ketergantungan Maven di editor yang sumbernya belum Anda unduh. Ini berguna ketika Anda tidak ingin mengambil sumber untuk semua dependensi Anda, tetapi Anda tidak tahu mana yang Anda inginkan sebelumnya (dan Anda menggunakan Eclipse).
Saya juga menggunakan plugin gerhana untuk mendapatkan proyek ke ruang kerja gerhana. Karena saya telah bekerja pada proyek yang berbeda saya melihat bahwa adalah mungkin untuk bekerja dengan gerhana tetapi tanpa plugin maven-eclipse. Itu membuatnya lebih mudah untuk digunakan dengan lingkungan yang berbeda dan memungkinkan penggunaan yang mudah dari pakar gerhana. Dan itu tanpa mengubah file pom.xml.
Jadi, saya merekomendasikan pendekatan Gabriel Ramirez.
Untuk debugging Anda juga dapat menggunakan "Java Decompiler" seperti: JAD dan mendekompilasi sumber dengan cepat (walaupun sumber yang dihasilkan tidak pernah sama dengan aslinya). Kemudian instal JAD sebagai plugin di Eclipse atau IDE favorit Anda.
Jika tidak, Anda selalu dapat "git klon" repo dari github, jika ada dan dapatkan kode tertentu.
Seperti yang dijelaskan oleh orang lain, Anda dapat menggunakan perintah "mvn dependency: sources" perintah get dan generate sources jar untuk dependensi yang Anda gunakan.
Catatan: Beberapa dependensi tidak akan memiliki sources.jar, karena tidak mengandung kode sumber selain file pom. misalnya spring-boot-starter-actuator . Seperti dalam kasus ini:
POM pemula adalah sekumpulan deskriptor ketergantungan yang nyaman yang dapat Anda sertakan dalam aplikasi Anda. Anda mendapatkan toko serba ada untuk semua Pegas dan teknologi terkait yang Anda butuhkan, tanpa harus menelusuri kode sampel dan menyalin banyak penjelas ketergantungan dependensi.
Jika Anda ingin menemukan file jar sumber untuk artefak mana pun secara manual, buka lokasi penyimpanan pakar untuk artefak tertentu dan di dalam File klik 'lihat Semua'. Anda dapat menemukan file jar sumber.
Jawaban:
Sumber: http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/
Dokumentasi: https://maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html
sumber
mvn dependency:resolve -Dclassifier=javadoc
IntelliJ IDEA secara otomatis memperhatikan javadocs, yang sangat bagus.Mengkonfigurasi dan menjalankan plugin maven-eclipse, (misalnya dari baris perintah
mvn eclipse:eclipse
)sumber
mvn eclipse:eclipse
jika Anda menambahkan ini ke file POM?M2_REPO
sebagai xxxx-yy-sources.jar, di lokasi yang sama dengan tabung normal. Ini akan dilampirkan sebagai kode sumber untuk tabung xxxx-yy di perpustakaanJika suatu proyek membuat toples dari sumber proyek dan menyebarkannya ke repositori pakar, maka Anda akan menemukannya :)
Hanya FYI, artefak sumber umumnya dibuat oleh maven-source-plugin . Plugin ini dapat membundel sumber utama atau menguji suatu proyek ke dalam tabung jar dan, seperti yang dijelaskan dalam Mengkonfigurasi Sumber Plugin :
Teks tambahan diberikan untuk menggambarkan artefak ("-sumber" atau "-test-sources" di sini) disebut classifier.
Untuk mendeklarasikan ketergantungan pada artefak yang menggunakan classifier, cukup tambahkan
<classifier>
elemen. Sebagai contoh:Perhatikan bahwa Anda biasanya tidak melakukan ini, sebagian besar IDE memberikan dukungan untuk mengunduh sumber (dan / atau JavaDoc) dari artefak utama tanpa menyatakan secara eksplisit ketergantungan pada sumber tersebut.
Terakhir, perhatikan juga bahwa beberapa mesin pencari repositori memungkinkan pencarian artefak menggunakan penggolong (setidaknya Nexus tidak dengan pencarian lanjutan). Lihat pencarian ini misalnya.
sumber
The Ide Plugin maven untuk IntelliJ Idea memungkinkan Anda untuk menentukan apakah atau tidak sumber dan java doc harus diselesaikan dan di-download
sumber
Untuk mengunduh beberapa sumber atau javadoc tertentu, kita perlu memasukkan GroupIds - ini adalah nilai yang dipisahkan koma seperti yang ditunjukkan di bawah ini
Perhatikan bahwa classifier tidak dipisahkan koma, untuk mengunduh javadoc kita perlu menjalankan perintah di atas sekali lagi dengan classifier sebagai javadoc
sumber
Untuk mengunduh penggunaan artefak
Untuk sumber-sumber Groovy ini akan menjadi
Untuk javadoc Groovy yang akan Anda gunakan
Ini menempatkan artefak yang diberikan ke repositori Maven lokal Anda, yaitu biasanya
$HOME/.m2/repository
.dependency:sources
hanya mengunduh sumber dependensi proyek, bukan sumber plugin atau sumber dependensi yang ditentukan di dalam plugin.sumber
Anda dapat menemukan info di pertanyaan terkait ini: Dapatkan file jar sumber yang dilampirkan ke Eclipse untuk dependensi yang dikelola Maven
jika Anda menggunakan plugin gerhana lalu gunakan 'mvn gerhana: eclipse -DdownloadSources = true'
sumber
jika Anda menggunakan eclipse, Anda juga bisa membuka Preferensi> Maven dan pilih Unduh Sumber Artefak, ini akan membiarkan pom.xml tetap utuh dan menjaga sumber atau dokumen java (jika dipilih) hanya untuk pengembangan tepat di lokasi mesin Anda ~ / .m2
sumber
Dalam Eclipse
pom.xml
Run As
->Maven generate-sources
maka akan menghasilkan sumber secara default di folder .m2
Prasyarat:
Maven harus dikonfigurasi dengan Eclipse.
sumber
Dalam eclipse - klik pada proyek itu:
.
sumber
Anda dapat, jika diunggah. Umumnya mereka disebut "frameworkname-version-source (s)"
sumber
NetBeans, Klik-Konteks
Di NetBeans 8 dengan proyek berbasis Maven, hanya klik konteks pada item daftar file jar dari ketergantungan yang Anda minati. Memilih
Download Sources
. Tunggu sebentar dan NetBeans akan secara otomatis mengunduh dan menginstal kode sumber, jika tersedia.Anda juga dapat memilih
Download Javadoc
untuk menginstal dokumen secara lokal. Kemudian Anda dapat mengklik konteks beberapa kode di editor dan memilih untuk melihat JavaDoc.sumber
Berdasarkan menonton konsol Maven di Eclipse (Kepler), sumber akan secara otomatis diunduh untuk ketergantungan Maven jika Anda mencoba untuk membuka kelas dari kata ketergantungan Maven di editor yang sumbernya belum Anda unduh. Ini berguna ketika Anda tidak ingin mengambil sumber untuk semua dependensi Anda, tetapi Anda tidak tahu mana yang Anda inginkan sebelumnya (dan Anda menggunakan Eclipse).
Saya akhirnya menggunakan pendekatan @ GabrielRamierez , tetapi akan menggunakan pendekatan @ PascalThivent untuk maju.
sumber
Jika Anda mengetahui groupId dan aritifactId , Anda dapat membuat url unduhan seperti ini.
http://central.maven.org/maven2/ch/qos/logback/logback-classic/
dan Anda akan mendapatkan halaman seperti ini, pilih versi yang Anda butuhkan, nikmati saja!
sumber
Saya juga menggunakan plugin gerhana untuk mendapatkan proyek ke ruang kerja gerhana. Karena saya telah bekerja pada proyek yang berbeda saya melihat bahwa adalah mungkin untuk bekerja dengan gerhana tetapi tanpa plugin maven-eclipse. Itu membuatnya lebih mudah untuk digunakan dengan lingkungan yang berbeda dan memungkinkan penggunaan yang mudah dari pakar gerhana. Dan itu tanpa mengubah file pom.xml.
Jadi, saya merekomendasikan pendekatan Gabriel Ramirez.
sumber
Untuk debugging Anda juga dapat menggunakan "Java Decompiler" seperti: JAD dan mendekompilasi sumber dengan cepat (walaupun sumber yang dihasilkan tidak pernah sama dengan aslinya). Kemudian instal JAD sebagai plugin di Eclipse atau IDE favorit Anda.
sumber
Repositori Maven memang menyediakan cara sederhana untuk mengunduh toples sumber.
Saya akan menjelaskannya menggunakan demonstrasi untuk "spring-boot-actuator-autoconfigure".
Jika tidak, Anda selalu dapat "git klon" repo dari github, jika ada dan dapatkan kode tertentu.
Seperti yang dijelaskan oleh orang lain, Anda dapat menggunakan perintah "mvn dependency: sources" perintah get dan generate sources jar untuk dependensi yang Anda gunakan.
Catatan: Beberapa dependensi tidak akan memiliki sources.jar, karena tidak mengandung kode sumber selain file pom. misalnya spring-boot-starter-actuator . Seperti dalam kasus ini:
Referensi: Pengantar Pemula Boot Musim Semi
sumber
Di IntelliJ IDEA Anda dapat mengunduh sumber artefak secara otomatis saat mengimpor dengan mengaktifkan opsi Sumber unduhan secara otomatis:
Settings
→Build, Execution, Deployment
→Build Tools
→Maven
→Importing
sumber
Jika Anda ingin menemukan file jar sumber untuk artefak mana pun secara manual, buka lokasi penyimpanan pakar untuk artefak tertentu dan di dalam File klik 'lihat Semua'. Anda dapat menemukan file jar sumber.
sumber