Maven - ดาวน์โหลดแหล่งที่มาและ javadocs เสมอ


244

มีวิธีที่ฉันสามารถกำหนดค่า Maven ไปเสมอแหล่งดาวน์โหลดและ javadocs? การระบุ-DdownloadSources=true -DdownloadJavadocs=trueทุกครั้ง (ซึ่งมักจะไปพร้อมกับการรวบรวม mvn ทำงานสองครั้งเพราะฉันลืมครั้งแรก) จะค่อนข้างน่าเบื่อ


นี่สำหรับปลั๊กอิน eclipse หรือไม่ คุณไม่ควรที่จะเรียกใช้งานบ่อยนัก ...
sjr

1
ไม่เป็นสำหรับโปรแกรมบรรทัดคำสั่ง ฉันไม่ต้องวิ่งบ่อย แต่มันจะดีถ้าฉันต้องวิ่งมันไม่เคย!
schmmd

1
บรรทัดคำสั่งคืออะไร นี่คือเมื่อคุณทำmvn eclipse:eclipseถูกต้อง?
sjr

14
@sjr ใช่เพื่อดาวน์โหลดแหล่งและ javadocs สามารถดำเนินการได้mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
Yuriy Nakonechnyy

ฉันคิดว่าคำถามนี้ยังไม่ได้รับคำตอบ คำตอบที่ยอมรับเกี่ยวข้องกับปลั๊กอิน Eclipse เท่านั้น @ คำตอบ AlexisGamarra เป็นที่ใกล้เคียงที่สุด แต่ไม่ได้แก้ปัญหา "วิริยะ" ของการแก้ปัญหา - มันไม่ได้กำหนด Maven จะทำเสมอเมื่อใดก็ตามที่คุณเรียกmvn ติดตั้ง
Honza Zidek

คำตอบ:


265

เปิดไฟล์ settings.xml ของคุณ~/.m2/settings.xml (สร้างหากไม่มีไฟล์) เพิ่มส่วนที่มีคุณสมบัติเพิ่ม จากนั้นตรวจสอบให้แน่ใจว่า activeProfiles มีโปรไฟล์ใหม่

<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
ฉันกำลังลองคุณสมบัติของโปรไฟล์เหล่านี้ใน Maven 2.2.1 และ 3.0.2 และมันไม่ทำงาน พื้นที่เก็บข้อมูลเป้าหมายคือ Archiva ข้อเสนอแนะใด ๆ เกี่ยวกับสิ่งอื่น ๆ ที่สามารถลองได้? ฉันได้ลองใช้การพึ่งพา: เป้าหมายที่มา ขอบคุณ
jmend

18
ยิ่งไปกว่านั้นใน Eclipse คุณสามารถไปที่การตั้งค่า -> Maven (ไม่มีหมวดหมู่ย่อย) ที่นั่นคุณสามารถตรวจสอบ "ดาวน์โหลดสิ่งประดิษฐ์แหล่งที่มา / JavaDocs" อย่างไรก็ตามบางครั้ง Eclipse ไม่ต้องการสร้างไฟล์นั้นด้วยตนเอง (เกิดขึ้นกับฉันใน Luna) ในกรณีนั้น - ไปที่นั่นแล้ววางคำตอบนี้ไว้ในแท็กการตั้งค่าและบอก Eclipse ให้โหลดใหม่และควรใช้งานได้
Andrei Bârsan

9
สิ่งนี้ใช้ได้กับฉัน: ใน Eclipse ไปที่การตั้งค่า -> Maven (ไม่มีหมวดหมู่ย่อย) ตรวจสอบ - "ดาวน์โหลดแหล่งที่มาสิ่งประดิษฐ์" - "ดาวน์โหลดสิ่งประดิษฐ์ JavaDocs" - "อัปเดตโครงการ Maven เมื่อเริ่มต้น" (เพียงเพราะฉันไม่สามารถหาวิธีการด้วยตนเอง) จากนั้นรีสตาร์ท Eclipse เสร็จสิ้น
Dirk

4
สิ่งนี้มีผลเฉพาะปลั๊กอิน Maven Eclipse
Jingguo Yao

9
นี่ไม่ควรเป็นคำตอบที่ยอมรับได้! ตามที่ @JingguoYao ระบุไว้จะมีผลกับปลั๊กอิน Maven Eclipse เท่านั้น คำถามเดิมไม่ได้ผูกมัดกับ Eclipse แต่ให้กับ Maven เอง
Honza Zidek

195

ในกรณีของฉันโซลูชัน "settings.xml" ไม่ทำงานดังนั้นฉันจึงใช้คำสั่งนี้เพื่อดาวน์โหลดแหล่งที่มาทั้งหมด:

mvn dependency:sources

คุณยังสามารถใช้กับคำสั่ง maven อื่น ๆ ได้เช่น:

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

ในการดาวน์โหลดเอกสารทั้งหมดให้ใช้คำสั่งต่อไปนี้:

mvn dependency:resolve -Dclassifier=javadoc

1
ฉันคิดว่าคำถามนี้ยังไม่ได้รับคำตอบ คำตอบที่ยอมรับเกี่ยวข้องกับปลั๊กอิน Eclipse เท่านั้น คำตอบของคุณเป็นที่ใกล้เคียง แต่ไม่ได้แก้ปัญหา "วิริยะ" ของการแก้ปัญหา - มันไม่ได้กำหนด Maven จะทำเสมอเมื่อใดก็ตามที่คุณเรียกmvn ติดตั้ง
Honza Zidek

52

เพียงรวบรวมและเตรียมคำสั่งเดียวเพื่อจัดการแหล่งดาวน์โหลดและเอกสาร ...

mvn dependency:sources dependency:resolve -Dclassifier=javadoc

42

คำตอบสำหรับคนจาก Google

ในEclipseคุณสามารถดาวน์โหลดjavadocและแหล่งที่มาได้โดยอัตโนมัติ

โดยคลิกขวาที่โปรเจ็กต์และใช้

  • Maven -> ดาวน์โหลด JavaDoc
  • Maven -> แหล่งดาวน์โหลด

3
และใน IDEA คุณสามารถคลิกขวาที่โมดูลและภายใต้เมนู Maven มีตัวเลือกให้ดาวน์โหลดแหล่งที่มาและ / หรือเอกสาร
forresthopkinsa

@Betlista อ่านบรรทัดแรกของโพสต์ ผู้คนจำนวนมากไปจาก google ไปที่นี่กำลังมองหาอย่างอื่น แต่ท้ายที่สุดจะไปที่นี่แม้จะมีคำหลักที่แตกต่างกัน
Ghandhikus

14

ฉันใช้ Maven 3.3.3 และไม่สามารถรับโปรไฟล์เริ่มต้นให้ทำงานในผู้ใช้หรือsettings.xmlไฟล์ทั่วโลก

คุณสามารถเพิ่มปลั๊กอินบิลด์เพิ่มเติมลงในpom.xmlไฟล์ของคุณได้

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


4

ดังที่ @ xecaps12 กล่าวว่าวิธีที่ง่ายที่สุด / มีประสิทธิภาพคือการเปลี่ยนไฟล์การตั้งค่า Maven ของคุณ (~ / .m2 / settings.xml) แต่หากเป็นการตั้งค่าเริ่มต้นสำหรับคุณคุณสามารถตั้งค่าเช่นนั้นได้

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

สิ่งนี้ไม่ได้ผลคุณเพียงแค่ประกาศคุณสมบัติส่วนกลางที่ไม่ได้ใช้ ฉันเชื่อว่าคำตอบที่เป็นตำนานมาจากmaven-eclipse-plugin: maven.apache.org/plugins/maven-eclipse-plugin/examples/…
inanutshellus

Nope เพียงความเรียบง่ายของ "การแก้ไข" คำตอบ;)
Kraiss

1
รุ่น "ที่แก้ไขแล้ว" ไม่ทำงานเช่นกัน (ฉันได้แสดงความคิดเห็นแบบเดียวกันที่นั่นเช่นกัน แต่ได้ลบออกชั่วคราวในขณะที่ฉันหารือกับคุณ) ดังนั้น - คุณกำลังพูดคำตอบของคุณ (และคำตอบที่ได้รับการแก้ไข) จริงหรือไม่? ฉันหมายความว่ามี 159 คนที่อัปโหลดคำตอบที่ผิดหรือล้าสมัยดังนั้นจึงเหมาะสำหรับใครบางคน ถ้ามันเป็นไปตามที่คุณพูดฉันก็จะทำอะไรผิดเช่นเดียวกับคนหลาย ๆ คนในคำตอบที่ได้รับการแก้ไขในความคิดเห็นและฉันชอบที่จะเรียนรู้สิ่งนั้นและทำงานให้สำเร็จ
inanutshellus

ฉันคิดว่า var โกลบอลเหล่านั้นถูกตรวจสอบโดยปลั๊กอิน eclipse เมื่อคุณกำลังพัฒนาด้วย eclise การดึงข้อมูลซอร์สถูกทำโดย eclipse และไม่ใช่โดย maven บนบรรทัดรับคำสั่ง
Jonatan Cloutier

1

ฉันคิดว่ามันสามารถทำได้ต่อปลั๊กอิน ดูบทนี้จากหนังสือ Maven

คุณอาจจะสามารถกำหนดค่าปลั๊กอินการพึ่งพาเพื่อดาวน์โหลดแหล่งที่มา (แม้ว่าฉันจะไม่ได้ลองด้วยตัวเอง :-)


1

ใน Netbeans คุณสามารถสั่งให้ Maven ตรวจสอบ javadoc ในทุกโปรเจ็กต์ที่เปิดอยู่:

Tools| Options| Javaไอคอน | Mavenแท็บ | Dependenciesหมวดหมู่ | Check Javadocดร็อปดาวน์กำหนดเป็นEvery Project Openหล่นลงชุด

ปิดและเปิด Netbeans อีกครั้งและคุณจะเห็น Mavavar ดาวน์โหลด javadocs ในแถบสถานะ


0

ไม่แน่ใจ แต่คุณควรจะทำอะไรบางอย่างได้โดยตั้งค่าโปรไฟล์ที่ใช้งานเริ่มต้นใน settings.xml ของคุณ

ดู

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


อา! เพียงแค่ตรงตามที่อธิบายโดย @ xecaps12
pgbsl

9
คุณควรคัดลอกส่วนที่เกี่ยวข้องจากลิงก์ไปยังคำตอบของคุณในกรณีที่ URL แตก
ดันแคนโจนส์

0

เพียงแค่ปรับเปลี่ยนไฟล์mvn(หรือmvn.cmdถ้าใน windows) และเพิ่มสวิตช์บรรทัดคำสั่งที่คุณต้องการ (ดังที่ได้กล่าวไว้โดยคำตอบอื่น ๆ ) หากคุณไม่ต้องการแก้ไขไฟล์ติดตั้ง (ซึ่งฉันอยากจะแนะนำ) ให้สร้างmymvn(หรือmymvn.cmd) wrapper ที่เรียกใช้ปกติmvnด้วยพารามิเตอร์


0

ฉันต้องใช้ KeyStore เพื่อดาวน์โหลด Jars หากคุณมีปัญหาเกี่ยวกับใบรับรองใด ๆ คุณสามารถใช้วิธีนี้ได้:

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

หากคุณต้องการทราบวิธีการสร้าง KeyStores นี่เป็นลิงค์ที่ดีมาก: ปัญหาในการใช้ Maven และ SSL หลังพร็อกซี


0

สำหรับแหล่งที่มาในระดับการพึ่งพา (pom.xml) คุณสามารถเพิ่ม:

<classifier>sources</classifier>

0

เพื่อติดตามคำตอบจากkevinarpeสิ่งนี้จะทำทั้งแหล่งที่มาและ 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>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.