รับไฟล์ jar ต้นทางที่แนบกับ Eclipse สำหรับการพึ่งพา Maven ที่มีการจัดการ


176

ฉันกำลังใช้ Maven (และการรวม Maven Eclipse) เพื่อจัดการการพึ่งพาสำหรับโปรเจ็กต์ Java ของฉันใน Eclipse คุณสมบัติดาวน์โหลดอัตโนมัติสำหรับไฟล์ JAR จากที่เก็บ Maven เป็นตัวช่วยประหยัดเวลาจริง น่าเสียดายที่มันไม่ได้มีเอกสารประกอบ API และซอร์สโค้ด

ฉันจะตั้งค่า Maven ให้รับไฟล์แนบจากแหล่งที่มาและ javadoc โดยอัตโนมัติและลงทะเบียนด้วย Eclipse ได้อย่างไร


คำถามที่เกี่ยวข้องถามถึงวิธีการเสมอดาวน์โหลดแหล่งที่มาและ Javadoc เมื่อใช้ Maven: stackoverflow.com/questions/5780758/...
ไหล

คำตอบ:


226

ฉันแน่ใจว่าปลั๊กอิน m2eclipse Maven สำหรับ Eclipse - วิธีอื่น ๆ - สามารถทำได้ คุณสามารถกำหนดค่าให้ดาวน์โหลดทั้งไฟล์ต้นฉบับและ javadoc โดยอัตโนมัติสำหรับคุณ

สิ่งนี้สามารถทำได้โดยเข้าไปที่ Window> Preferences> Maven และตรวจสอบตัวเลือก "Download Artifact Sources" และ "Download Artifact JavaDoc"

สกรีนช็อตของการตั้งค่า Maven


ใช่ฉันเพิ่งเริ่มใช้ m2eclipse และใช้รถคันนี้ (และสิ่งอื่น ๆ อีกมากมาย)
Thilo

44
คำตอบเหล่านี้ไม่ใช่คำตอบ ทำไมพวกเขาถึงถูกโหวต? ฉันสามารถดาวน์โหลดแหล่งที่มาได้โดยคลิกที่โครงการในมุมมองเนวิเกเตอร์และเลือก "m2 Maven" -> "ดาวน์โหลดแหล่งที่มา" ฉันสามารถคลิกคำสั่ง (mac) ในชั้นเรียนเพื่อนำทางไปยังแหล่งที่เชื่อมโยง
Alex Worden

8
ดูเหมือนว่าหากมีการดาวน์โหลด JAR ที่รวบรวมแล้ว Eclipse จะไม่พยายามรับซอร์ส / Javadoc JARs ทันที ดูเหมือนว่าการแก้ไข POM ที่มีการพึ่งพา POM ที่ฉันต้องการซอร์ส / Javadoc ใน Eclipse และการบันทึก POM จะดาวน์โหลดซอร์ส / Javadoc สำหรับการพึ่งพาแม้ว่า JAR ที่คอมไพล์แล้วจะอยู่ในแคชที่เก็บ Maven แล้ว
Francis Gagné

13
@Fancancis - หลังจากทำการเปลี่ยนแปลงด้านบนคลิกขวาที่โครงการของคุณและเลือก "Maven> Update Project ... " นี่จะทำให้ jars ต้นทางของคุณดาวน์โหลด
carbontax

3
แทนที่จะดาวน์โหลดแหล่งข้อมูลสำหรับการอ้างอิงทั้งหมดเป็นไปได้หรือไม่ที่จะดาวน์โหลดเฉพาะการอ้างอิงบางรายการโดยระบุไว้ใน pom พร้อมกับการอ้างอิงเองอาจ b ผ่านแท็กภายในบางส่วนในแท็กการพึ่งพาหรือสิ่งที่คล้ายกัน
nanosoft

127
mvn eclipse:eclipse -DdownloadSources=true

หรือ

mvn eclipse:eclipse -DdownloadJavadocs=true

หรือคุณสามารถเพิ่มทั้งสองธงตาม Spencer K ชี้ให้เห็น

นอกจากนี้=trueส่วนที่ไม่จำเป็นเพื่อให้คุณสามารถใช้

mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs

8
หรือทั้งคู่! mvn eclipse: eclipse -DdownloadSources = true -DdownloadJavadocs = true ใช้ได้เฉพาะเมื่อมีการจัดหาแหล่งที่มาและ javadocs ให้กับ repo ที่คุณกำลังดาวน์โหลด บางครั้งพวกเขาไม่ได้ให้บริการเหมือนฤดูใบไม้ผลิ
Spencer Kormos

2
ฤดูใบไม้ผลิตอนนี้ให้พวกเขา
Robin Green

โปรดทราบว่าคำตอบนี้มีอายุมากกว่า 10 ปี ใช้ปลั๊กอิน m2e ใน eclipse แทนที่จะมี maven สร้างไฟล์กำหนดค่า eclipse
Thorbjørn Ravn Andersen

71

คำตอบอื่น ๆ เกี่ยวกับงานนี้ แต่ถ้าคุณต้องการหลีกเลี่ยงการจำอาร์กิวเมนต์บรรทัดคำสั่งคุณสามารถเพิ่มไปยัง downloadSources และ downloadJavadocs config ในส่วน maven-eclipse-plugin ของ pom.xml ของคุณ:

<project>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                    ... other stuff ...
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>

ฉันจะสามารถตั้งค่านี้ในระดับต่อการพึ่งพา?
marcorossi

@marcorossi ขออภัยฉันไม่แน่ใจว่าเป็นไปได้
คิดทบทวน

ฉันไม่มั่นใจว่าสิ่งนี้เหมาะสม การตั้งค่าการดาวน์โหลดซอร์สและ Javadoc เป็นสิ่งที่ผู้ใช้พึงพอใจไม่ใช่ความกังวลในระดับโครงการ ดูคำตอบของฉันด้านล่างสำหรับวิธีการวางในsettings.xmlไฟล์
ดันแคนโจนส์

ฉันได้รับคำเตือนนี้: [คำเตือน] 'build.plugins.plugin.version' สำหรับ org.apache.maven.plugins: maven-eclipse-plugin หายไป ในการแก้ไขปัญหาคุณสามารถเพิ่มสิ่งนี้ได้ด้านล่าง <artifactId>: <version> 2.9 </version>
Christiaan

16

ฉันไม่ต้องการใส่การตั้งค่าการดาวน์โหลดซอร์ส / Javadoc ลงในpom.xmlไฟล์โครงการเนื่องจากฉันรู้สึกว่านี่เป็นค่ากำหนดของผู้ใช้ไม่ใช่คุณสมบัติของโครงการ แต่ฉันวางไว้ในโปรไฟล์ในsettings.xmlไฟล์ของฉัน:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <profiles>
    <profile>
      <id>sources-and-javadocs</id>
      <properties>
        <downloadSources>true</downloadSources>
        <downloadJavadocs>true</downloadJavadocs>
      </properties>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>sources-and-javadocs</activeProfile>
  </activeProfiles>
</settings>

1
ฉันคัดลอก settings.xml นี้ใน. m2 อย่างไรก็ตามแหล่งที่มาและ javadocs ไม่ได้รับการคัดลอก คำสั่งดังต่อไปนี้อย่างชัดเจนใน CLI นำมามากกว่าแหล่งที่มาและ javadocs แม้ว่า: การพึ่งพา mvn: การพึ่งพาแหล่งที่มา: แก้ไข -Dclassifier = javadoc ความคิดใด ๆ ?
Arun Gupta

อาจใช้งานได้ แต่โปรดอธิบายว่าปลั๊กอิน maven eclipse ควรค้นหาการตั้งค่าเหล่านี้อย่างไร คุณคิดว่ามันจะหาคุณสมบัติทั่วโลก?
chrisinmtown

9

คลิกขวาที่โครงการ -> maven -> แหล่งดาวน์โหลด


3
ทุกคนบอกว่าจะเปิดใช้งานไม่ใช่วิธีดาวน์โหลด maven เพื่อดาวน์โหลดแหล่งข้อมูล! หลังจากเปิดใช้งานตัวเลือก
Chad

8

หากไหแหล่งที่มาอยู่ในพื้นที่เก็บข้อมูลในท้องถิ่นและคุณใช้ Eclipses maven สนับสนุนแหล่งที่มาจะได้รับการแนบโดยอัตโนมัติ คุณสามารถเรียกใช้mvn dependency:sourcesเพื่อดาวน์โหลดไหแหล่งข้อมูลทั้งหมดสำหรับโครงการที่กำหนด ไม่แน่ใจว่าจะทำอย่างไรกับเอกสารดังกล่าว


สิ่งนี้ใช้ได้สำหรับฉัน หลังจากทำงานmvn dependency:sourcesฉันสามารถคลิกผ่านใน Eclipse เพื่ออ่านซอร์ส ไม่จำเป็นต้องทำการเพิ่มเติมโดยการล้อเลียนด้วย m2e ในการดาวน์โหลด javadocs mvn dependency:sources -Dclassifier=javadocที่คุณทำ
Mat Gessel

4

หากคุณใช้ meclipse ให้ทำ

หน้าต่าง -> maven -> ดาวน์โหลด Artifact Sources (เลือกเครื่องหมายถูก)

(หากคุณยังคงได้รับหน้าต่างแหล่งที่มาแนบมาให้คลิกที่ปุ่มแนบไฟล์และปิดหน้าต่างแนบแหล่งที่มาในครั้งต่อไปที่คุณพยายามดูแหล่งที่มามันจะเปิดแหล่งที่ถูกต้อง)

Surajz



3

ฉันลองใช้ windows-> pref ..-> Maven แต่มันไม่ได้ผล ดังนั้นฉันจึงสร้างคลาสพา ธ ใหม่ด้วยคำสั่ง mvn eclipse: eclipse -DdownloadSources = true และรีเฟรชเวิร์กสเปซหนึ่งครั้ง voila .. ได้แนบแหล่งข้อมูลแล้ว

รายการของ jar ต้นทางมีอยู่ในคลาสพา ธ ดังนั้นการสร้างใหม่จึงแก้ปัญหาได้ ...


ด้วยโซลูชันของคุณฉันสามารถเลือกและเลือกโมดูลที่ฉันต้องการหาแหล่งได้ เพียง cd ลงในโมดูลนั้นและสร้างด้วย "mvn eclipse: clean eclipse: eclipse -DdownloadSources = true -T4 -Dmaven.test.skip = true -Denforcer.skip = true" ขอบคุณ :)
vishwarajanand

2

ในรุ่น Eclipse helios ของฉันที่มี m2Eclipse ไม่มี

window --> maven --> Download Artifact Sources (select check)

ภายใต้หน้าต่างเป็นเพียง "หน้าต่างใหม่", "เครื่องมือแก้ไขใหม่" "มุมมองแบบเปิด" เป็นต้น

หากคุณคลิกขวาที่โครงการของคุณให้เลือก maven -> แหล่งดาวน์โหลด

ไม่มีอะไรเกิดขึ้น. ไม่มีแหล่งดาวน์โหลดไฟล์ pom ไม่ได้รับการปรับปรุงไม่มีหน้าต่างปรากฏขึ้นถามแหล่งที่มา

การทำ mvn xxx นอก eclipse เป็นสิ่งที่อันตราย - คำสั่งบางอย่างไม่ทำงานกับ m2ecilpse - ฉันทำแบบนั้นครั้งเดียวและสูญเสียทั้งโครงการต้องติดตั้ง eclipse อีกครั้งและเริ่มจากศูนย์

ฉันยังคงมองหาวิธีที่จะได้รับ Ecilpse และ Maven เพื่อค้นหาและใช้แหล่งที่มาของขวดภายนอกเช่น servlet-api


2

การเปลี่ยน pom สำหรับ maven-eclipse-plugin เพื่อรวม source / javadoc เพียงใช้สำหรับการขึ้นต่อกันใหม่ที่เพิ่มเข้ากับ pom หากเราจำเป็นต้องใช้สำหรับการอ้างอิงที่มีอยู่เราจะต้องเรียกใช้การพึ่งพา mvn: แหล่งที่มา ฉันตรวจสอบสิ่งนี้


2

การตรวจสอบแหล่งดาวน์โหลด / javadoc ในการกำหนดค่าตามความชอบ Eclipse-Maven บางครั้งไม่เพียงพอ ในกรณีที่เหตุการณ์ Maven ไม่สามารถดาวน์โหลดได้ด้วยเหตุผลบางประการ (เครือข่ายมืดมน?) maven จะสร้างไฟล์ * .lastUpdated บางไฟล์จากนั้นจะไม่ดาวน์โหลดอีกครั้ง โซลูชันเชิงประจักษ์ของฉันคือการลบไดเร็กทอรี artifact จาก. m2 / repository และรีสตาร์ทเวิร์กสเปซ eclipse ด้วยซอร์สการดาวน์โหลด / javadoc ที่ตรวจสอบและอัพเดตโปรเจ็กต์เมื่อเริ่มต้นการตรวจสอบเช่นกัน หลังจากรีสตาร์ทเวิร์กสเปซอาจมีบางโปรเจ็กต์ที่สามารถทำเครื่องหมายว่ามีข้อผิดพลาดขณะที่ eclipse คืบหน้ากำลังดาวน์โหลดจากนั้นข้อผิดพลาดใด ๆ จะถูกล้าง บางทีขั้นตอนนี้อาจไม่ใช่ "วิทยาศาสตร์" แต่สำหรับฉันแล้ว


1

ฉันได้เพิ่มการกำหนดค่า pom ลงในปลั๊กอิน maven-eclipse เพื่อดาวน์โหลดซอร์สและ javadocs แต่ฉันคิด / หวังว่าจะเกิดขึ้นสำหรับการอ้างอิงใหม่ไม่ใช่รายการที่มีอยู่

สำหรับการอ้างอิงที่มีอยู่ฉันเรียกดูในแพ็คเกจ explorer ลงไปที่ "Maven Dependencies" และคลิกขวาที่ commons-lang-2.5.jar เลือก Maven | ดาวน์โหลดแหล่งที่มาและ ... ไม่มีอะไรเกิดขึ้น (ไม่มีแถบความคืบหน้าหรือสิ่งบ่งชี้ว่ากำลังทำอะไรอยู่) อย่างไรก็ตามมันดาวน์โหลดได้เนื่องจากฉันสามารถข้ามไปยังแหล่งข้อมูลในคอมมอนส์ - lang ได้ทันที


1

overthinkแนะนำการใช้ติดตั้งใน pom นี้:

<project>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-eclipse-plugin</artifactId>
            <configuration>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
                ... other stuff ...
            </configuration>
        </plugin>
    </plgins>
</build>
...

ครั้งแรกฉันคิดว่านี่จะยังไม่แนบ javadoc และแหล่งที่มา (เพราะฉันพยายามไม่สำเร็จกับตัวเลือก -DdownloadSources ก่อน)

แต่น่าประหลาดใจ - ไฟล์. classpath นั้นได้รับแหล่งที่มาและมีการแนบ javadoc เมื่อใช้ตัวแปร POM!


1

สำหรับ Indigo (และอาจจะ Helios) ช่องทำเครื่องหมายดังกล่าวข้างต้นตั้งอยู่ที่นี่:

หน้าต่าง -> การตั้งค่า -> Maven


0

ฉันมีปัญหาที่คล้ายกันและวิธีแก้ปัญหาที่ดีที่สุดสำหรับฉันคือการรวมแหล่งที่มาในขวดเดียวกับรหัสที่คอมไพล์ (ดังนั้นไดเรกทอรีที่กำหนดในขวดจะรวมทั้งFoo.javaและFoo.class) Eclipse จะเชื่อมโยงแหล่งที่มากับรหัสที่คอมไพล์โดยอัตโนมัติและให้ JavaDoc จากแหล่งที่มาโดยอัตโนมัติ เห็นได้ชัดว่ามีประโยชน์เฉพาะในกรณีที่คุณควบคุมสิ่งประดิษฐ์


0

หลังจากตั้งค่าคุณสมบัติในระดับโครงการหรือระดับคุณสมบัติผู้ใช้โปรดทำ Maven -> อัปเดตโครงการ (อัปเดตแรง) มันดาวน์โหลดแหล่งที่มา

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