Maven - Selalu unduh sumber dan javadocs

244

Apakah ada cara saya dapat mengkonfigurasi maven untuk selalu mengunduh sumber dan javadocs? Menentukan -DdownloadSources=true -DdownloadJavadocs=truesetiap kali (yang biasanya berjalan dengan menjalankan kompilasi mvn dua kali karena saya lupa pertama kali) menjadi agak membosankan.

schmmd
sumber
Apakah ini untuk plugin gerhana? Anda seharusnya tidak harus menjalankan itu terlalu sering ...
sjr
1
Tidak, ini untuk program baris perintah. Saya tidak harus menjalankannya sangat sering, tetapi akan lebih baik jika saya tidak pernah menjalankannya!
schmmd
1
Apa baris perintah? Ini saat Anda melakukan yang mvn eclipse:eclipsebenar?
sjr
14
@ sjr, ya untuk mengunduh sumber dan javadocs yang dapat dijalankanmvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
Yuriy Nakonechnyy
Saya pikir pertanyaan ini masih belum dijawab. Jawaban yang diterima hanya terkait dengan plugin Eclipse. @ AlexisGamarra jawaban adalah yang paling dekat tetapi tidak menyelesaikan "kegigihan" dari solusi - itu tidak mengatur Maven untuk selalu melakukannya setiap kali Anda menjalankan mvn install .
Honza Zidek

Jawaban:

265

Buka file settings.xml Anda ~/.m2/settings.xml (buat jika tidak ada). Tambahkan bagian dengan properti yang ditambahkan. Kemudian pastikan profil ActiveProfile menyertakan profil baru.

<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
sumber
6
Saya mencoba properti profil ini di Maven 2.2.1 dan 3.0.2 dan tidak berfungsi. Repositori target adalah Archiva. Ada saran tentang apa lagi yang bisa dicoba? Saya juga sudah mencoba menggunakan dependensi: sumber tujuan. Terima kasih
jmend
18
Selain itu, di Eclipse Anda bisa pergi ke Preferensi -> Maven (Tidak ada subkategori). Di sana, Anda dapat memeriksa "Unduh Sumber artefak / JavaDocs". Namun, terkadang Eclipse tidak ingin membuat file itu secara manual (terjadi pada saya di Luna). Dalam hal itu - pergi ke sana, tempelkan jawaban ini yang dibungkus dengan tag pengaturan dan beri tahu Eclipse untuk memuatnya kembali, dan itu akan berfungsi.
Andrei Bârsan
9
Ini bekerja untuk saya: di Eclipse pergi ke Preferensi -> Maven (Tidak ada subkategori). Periksa - "Unduh sumber artefak" - "Unduh artefak JavaDocs" - "Perbarui proyek Maven saat startup" (hanya karena saya tidak dapat menemukan cara manual) Kemudian mulai ulang Eclipse. Selesai
Dirk
4
Ini hanya berpengaruh pada plugin Maven Eclipse.
Jingguo Yao
9
Ini seharusnya bukan jawaban yang diterima! Seperti yang dikatakan @JingguoYao, itu hanya memengaruhi plugin Maven Eclipse. Pertanyaan aslinya tidak terikat pada Eclipse, tetapi lebih kepada Maven itu sendiri.
Honza Zidek
195

Dalam kasus saya, solusi "settings.xml" tidak berfungsi, jadi saya menggunakan perintah ini untuk mengunduh semua sumber:

mvn dependency:sources

Anda juga dapat menggunakannya dengan perintah pakar lain, misalnya:

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

Untuk mengunduh semua dokumentasi, gunakan perintah berikut:

mvn dependency:resolve -Dclassifier=javadoc
Alexis Gamarra
sumber
1
Saya pikir pertanyaan ini masih belum dijawab. Jawaban yang diterima hanya terkait dengan plugin Eclipse. Jawaban Anda adalah yang paling dekat tetapi tidak memecahkan "kegigihan" dari solusi - itu tidak mengatur Maven untuk selalu melakukannya setiap kali Anda menjalankan mvn install .
Honza Zidek
52

Hanya mengkonsolidasikan dan menyiapkan satu perintah untuk mengatasi sumber dan dokumen yang diunduh ...

mvn dependency:sources dependency:resolve -Dclassifier=javadoc
Venkateswara Rao
sumber
42

Jawab untuk orang-orang dari Google

Di Eclipse Anda dapat mengunduh javadoc dan sumber secara otomatis .

Untuk melakukan itu, klik kanan pada proyek dan gunakan

  • Maven -> Unduh JavaDoc
  • Maven -> Sumber Unduh
Ghandhikus
sumber
3
Dan di IDEA Anda dapat mengklik kanan Modul, dan di bawah menu Maven, ada opsi untuk mengunduh sumber dan / atau dokumentasi
forresthopkinsa
@Betlista membaca baris pertama posting. Banyak orang pergi dari google ke sini mencari sesuatu yang lain. Tapi akhirnya masuk ke sini, bahkan dengan kata kunci yang berbeda
Ghandhikus
14

Saya menggunakan Maven 3.3.3 dan tidak bisa mendapatkan profil default untuk bekerja di file pengguna atau global settings.xml.

Sebagai solusinya, Anda juga dapat menambahkan plugin build tambahan ke pom.xmlfile Anda .

<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
sumber
7

Di NetBeans : buka penjelajah proyek Anda- > Dependensi -> [ file.jar ] rightclick-> Unduh Javadoc

Ahmad Muzakki
sumber
4

Seperti yang dikatakan @ xecaps12, pendekatan paling sederhana / efisien adalah mengubah file pengaturan Maven Anda (~ / .m2 / settings.xml) tetapi jika itu adalah pengaturan default untuk Anda, Anda juga dapat mengaturnya seperti itu

<profile>
  <id>downloadSources</id>
  <activation>
    <activeByDefault>true</activeByDefault>
  </activation>
  <properties>
      <downloadSources>true</downloadSources>
      <downloadJavadocs>true</downloadJavadocs>
  </properties>
</profile>
Kraiss
sumber
Ini sebenarnya tidak berfungsi, Anda hanya mendeklarasikan properti global yang tidak digunakan. Saya percaya solusi mitos berasal dari maven-eclipse-plugin: maven.apache.org/plugins/maven-eclipse-plugin/examples/…
inanutshellus
Tidak, ini hanya penyederhanaan dari jawaban "yang diselesaikan";)
Kraiss
1
Versi "diselesaikan" juga tidak berfungsi. (Saya membuat komentar yang sama di sana juga, tetapi telah menghapus sementara sementara saya berunding dengan Anda.) Jadi - apakah Anda mengatakan jawaban Anda (dan dengan demikian jawaban yang diselesaikan) benar-benar bekerja untuk Anda ?? Maksud saya, 159 orang mengunggah jawaban yang salah atau usang itu, jadi jelas itu berfungsi untuk seseorang. Jika berhasil seperti yang Anda katakan, maka aku melakukan sesuatu yang salah, seperti beberapa orang pada jawaban diselesaikan dalam komentar dan saya akan senang untuk belajar itu dan mendapatkan kerja itu.
inanutshellus
Saya kira var global itu diperiksa oleh plugin eclipse ketika Anda benar-benar berkembang dengan eclise. pengambilan sumber dilakukan oleh gerhana dan bukan oleh pakar pada baris perintah.
Jonatan Cloutier
1

Saya pikir itu bisa dilakukan per plugin. Lihat bab ini dari buku Maven.

Anda mungkin dapat mengonfigurasi plugin dependensi untuk mengunduh sumber (walaupun saya belum mencobanya sendiri :-).

Sasha O
sumber
1

Di Netbeans, Anda dapat menginstruksikan Maven untuk memeriksa javadoc pada setiap proyek yang dibuka:

Tools| Options| Javaikon | Maventab | Dependencieskategori | Check Javadocdrop down diatur ke Every Project Open.

Tutup dan buka kembali Netbeans dan Anda akan melihat Maven mengunduh javadocs di bilah status.

Pierre C
sumber
0

Tidak yakin, tetapi Anda harus dapat melakukan sesuatu dengan menetapkan profil aktif default di pengaturan Anda.xml

Lihat

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

pgbsl
sumber
Ah! Persis seperti yang dijelaskan oleh @ xecaps12
pgbsl
9
Anda harus benar-benar menyalin bagian yang relevan dari tautan ke dalam jawaban Anda, kalau-kalau URL rusak.
Duncan Jones
0

Cukup modifikasi file mvn(atau mvn.cmdjika di windows) dan tambahkan switch perintah apa pun yang Anda butuhkan (sebagaimana disebutkan oleh jawaban lain). Jika Anda tidak ingin memodifikasi file instal (yang saya sarankan), buat mymvn(atau mymvn.cmd) wrapper yang memanggil reguler mvndengan parameter.

Mario Rossi
sumber
0

Saya harus menggunakan KeyStore untuk Unduh Guci. Jika Anda memiliki masalah terkait Sertifikat, Anda dapat menggunakan pendekatan ini:

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

Jika Anda ingin tahu cara membuat KeyStores, ini adalah tautan yang sangat bagus: Masalah menggunakan Maven dan SSL di belakang proksi

greencheese
sumber
0

Untuk sumber pada tingkat ketergantungan (pom.xml) Anda dapat menambahkan:

<classifier>sources</classifier>
Mehdi
sumber
0

Untuk menindaklanjuti jawaban dari kevinarpe ini ada sumber dan 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
sumber