รับ JARs ต้นทางจากที่เก็บ Maven


440

ใครบ้างมีความคิดใด ๆ ถ้าคุณสามารถหาแหล่ง JARs บนที่เก็บ Maven?


ในความคิดคลิกขวาที่การพึ่งพาในหน้าต่างเครื่องมือ Maven ทำมายากล czak.pl/images/posts/gwt-with-idea-ce/download-sources.png
Gayan Weerakutti

คำตอบ:


785

Maven Micro-Tip: รับแหล่งที่มาและ Javadocs

เมื่อคุณใช้ Maven ใน IDE คุณมักจะพบความต้องการ IDE ของคุณในการแก้ไขซอร์สโค้ดและ Javadocs สำหรับการพึ่งพาไลบรารีของคุณ มีวิธีง่ายๆในการบรรลุเป้าหมายนั้น

mvn dependency:sources
mvn dependency:resolve -Dclassifier=javadoc

คำสั่งแรกจะพยายามดาวน์โหลดซอร์สโค้ดสำหรับการอ้างอิงแต่ละรายการในไฟล์ pom ของคุณ

คำสั่งที่สองจะพยายามดาวน์โหลด Javadocs

Maven อยู่ในความเมตตาของผู้จัดทำห้องสมุดที่นี่ ดังนั้นบางส่วนจะไม่มีซอร์สโค้ดที่บรรจุและส่วนใหญ่จะไม่มี Javadocs

ในกรณีที่คุณมีการพึ่งพาจำนวนมากมันอาจเป็นความคิดที่ดีที่จะใช้การรวม / การยกเว้นเพื่อรับสิ่งประดิษฐ์เฉพาะคำสั่งต่อไปนี้จะดาวน์โหลดเฉพาะแหล่งที่มาสำหรับการพึ่งพาด้วย artifactId ที่เฉพาะเจาะจง:

mvn dependency:sources -DincludeArtifactIds=guava

ที่มา: http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/

เอกสารประกอบ: https://maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html


10
วางไว้ที่ไหนเมื่อดาวน์โหลด
James Moore

15
มันทำให้พวกเขาอยู่ในไดเรกทอรีเดียวกับไบนารีขวดภายใต้ M2_HOME
Alain O'Dea

19
หากคุณกำลังใช้ eclipse การใช้ "mvn eclipse: eclipse" ในภายหลังก็จะเป็นประโยชน์เช่นกันจากนั้นรีเฟรชโครงการของคุณใน eclipse - ช่วยให้คุณประหยัดจากการแนบซอร์สไปยังแต่ละไฟล์ด้วยตนเอง
unigeek

1
ฉันไม่พบแหล่งที่มาและ javadocs หลังจากดาวน์โหลดแล้ว ฉันตรวจสอบทุกไดเรกทอรีภายใต้ M2_HOME
Patrick Kiernan

2
หลังจากmvn dependency:resolve -Dclassifier=javadocIntelliJ IDEA สังเกต javadocs โดยอัตโนมัติซึ่งดีมาก
Jonik

89

การกำหนดค่าและเรียกใช้ปลั๊กอิน maven-eclipse (ตัวอย่างจากบรรทัดคำสั่งmvn eclipse:eclipse)

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

คุณหมายถึงอะไร คุณหมายถึงแหล่งที่มาและเอกสารถูกดาวน์โหลดเมื่อคุณเรียกใช้หรือไม่mvn eclipse:eclipseถ้าคุณเพิ่มสิ่งนี้ลงในไฟล์ POM
Lii

3
ใช่. เรียบง่ายเหมือนที่
RobAu

@RobAu แหล่งที่จะดาวน์โหลดจะถูกแนบมากับโครงการที่ตนเองหรือที่อื่น?
Jaskey

1
มันจะถูกดาวน์โหลดเป็น jar ในM2_REPOxxxx-yy-sources.jar ของคุณในตำแหน่งเดียวกับ jar ปกติ มันจะถูกแนบมาเป็นซอร์สโค้ดสำหรับ jar xxxx-yy ในไลบรารี
RobAu

1
@ KanagaveluSugumar คุณต้องเพิ่ม M2_REPO ไปยัง eclipse จากนั้นเพียงรีเฟรชโครงการ
RobAu

36

หากโปรเจ็กต์สร้าง jar ของแหล่งโปรเจ็กต์และปรับใช้กับที่เก็บ maven คุณจะพบมัน :)

เพียง FYI สิ่งประดิษฐ์แหล่งที่ถูกสร้างขึ้นโดยทั่วไปMaven แหล่งปลั๊กอิน ปลั๊กอินนี้สามารถรวมแหล่งที่มาหลักหรือทดสอบของโครงการลงในไฟล์เก็บถาวร jar และตามที่อธิบายไว้ในการกำหนดค่าปลั๊กอินแหล่งที่มา :

(... ) ไฟล์ jar ที่สร้างขึ้นจะถูกตั้งชื่อโดยค่าของเครื่องหมายfinalNameบวก "-sources" หากเป็นแหล่งข้อมูลหลัก มิฉะนั้นจะfinalNameเป็นเครื่องหมายบวก "-test-sources" หากเป็นแหล่งข้อมูลการทดสอบ

ข้อความเพิ่มเติมได้รับการอธิบายสิ่งประดิษฐ์ ("-sources" หรือ "-test-sources" ที่นี่) เรียกว่าลักษณนาม

ในการประกาศการขึ้นต่อกันของสิ่งประดิษฐ์ที่ใช้ตัวแยกประเภทเพียงแค่เพิ่ม<classifier>องค์ประกอบ ตัวอย่างเช่น:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate</artifactId>
  <version>3.2.7.ga</version>
  <classifier>sources</classifier>
</dependency>

โปรดทราบว่าโดยทั่วไปคุณไม่ได้ทำสิ่งนี้ IDEs ส่วนใหญ่จะให้การสนับสนุนแหล่งดาวน์โหลด (และ / หรือ JavaDoc) จากส่วนหลักโดยไม่ต้องประกาศการพึ่งพาอย่างชัดเจน

สุดท้ายโปรดทราบว่าเอ็นจิ้นการค้นหาที่เก็บบางแห่งอนุญาตให้ค้นหาสิ่งประดิษฐ์โดยใช้ตัวแยกประเภท (อย่างน้อย Nexus ทำด้วยการค้นหาขั้นสูง) ดูตัวอย่างการค้นหานี้


18

ปลั๊กอินคิด Mavenสำหรับ IntelliJ ไอเดียช่วยให้คุณระบุหรือไม่ว่าแหล่งที่มาและ Java doc ควรได้รับการแก้ไขและดาวน์โหลดได้

mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true

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

ปลั๊กอินนี้
เลิกใช้

18

ในการดาวน์โหลดแหล่งข้อมูลเฉพาะหรือ javadocเราจำเป็นต้องรวม GroupIds - เป็นค่าที่คั่นด้วยเครื่องหมายจุลภาคดังที่แสดงด้านล่าง

mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources

โปรดทราบว่าลักษณนามจะไม่ถูกคั่นด้วยเครื่องหมายจุลภาคเพื่อดาวน์โหลด javadoc เราจำเป็นต้องเรียกใช้คำสั่งข้างต้นอีกครั้งกับลักษณนามเป็น javadoc

mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc

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

14

เพื่อดาวน์โหลดสิ่งประดิษฐ์ใด ๆ ที่ใช้

mvn dependency:get -Dartifact=groupId:artifactId:version:packaging:classifier

สำหรับแหล่ง Groovy สิ่งนี้จะเป็น

mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:sources

สำหรับ javadoc ของ Groovy คุณจะใช้

mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc

ทำให้สิ่งประดิษฐ์นี้ได้รับการลงพื้นที่เก็บข้อมูล Maven $HOME/.m2/repositoryท้องถิ่นของคุณคือมักจะ

dependency:sources เพียงดาวน์โหลดแหล่งอ้างอิงของโครงการไม่ใช่แหล่งปลั๊กอินหรือแหล่งอ้างอิงที่กำหนดไว้ภายในปลั๊กอิน


12

คุณสามารถค้นหาข้อมูลในคำถามที่เกี่ยวข้องนี้: รับไฟล์ jar ต้นฉบับที่เชื่อมต่อกับ Eclipse สำหรับการพึ่งพา Maven ที่มีการจัดการ
หากคุณใช้ปลั๊กอิน eclipse maven แล้วใช้ 'mvn eclipse: eclipse -DdownloadSources = true'


นี่เป็นทางออกเดียวที่ได้ผลสำหรับฉัน ฉันกำลังใช้ Eclipse Kepler ตั้งแต่นี้ทำให้การอ้างอิงที่เหมาะสมใน.classpath เหมือนดังต่อไปนี้:
aspdeepak

<classpathentry kind = "var" path = "M2_REPO / redis / clients / jedis / 2.6.0 / jedis-2.6.0.jar" sourcepath = "M2_REPO / redis / clients / jedis / 2.6.0 / jedis-2.6.0 -sources.jar ">
aspdeepak

เมื่อผมทำตามคำตอบ @ RobAu เพียงHibernate เอกสารถูกดาวน์โหลดจาก repo ไม่ฤดูใบไม้ผลิ จากนั้นฉันไปที่ลิงก์ที่คุณให้ & ตาม @ mrembisz & ทำการเปลี่ยนแปลงการตั้งค่า Maven & ทำงานเหมือนมีเสน่ห์ ฉันได้รับฤดูใบไม้ผลิเอกสาร @Stefan De Boey ขอบคุณที่แชร์สิ่งนี้ +1
OO7

9

หากคุณกำลังใช้ eclipse คุณสามารถเปิดการกำหนดค่าตามความชอบ> Maven และเลือกดาวน์โหลด Artifact Sources ซึ่งจะทำให้ pom.xml ไม่เป็นอันตรายและเก็บซอร์สหรือ java docs ของคุณ (หากเลือก) เพื่อการพัฒนาที่ตำแหน่งเครื่องของคุณ ~ / .m2


7

ใน Eclipse

  1. คลิกขวาที่ pom.xml
  2. เลือกRun As-> Maven generate-sources
    มันจะสร้างแหล่งที่มาโดยค่าเริ่มต้นในโฟลเดอร์. m2

ก่อนจำเป็น:

Maven ควรกำหนดค่าด้วย Eclipse


1
ตอบคำถามอื่น คำถามนี้เกี่ยวกับการดาวน์โหลดซอร์ส JAR ที่ไม่ได้สร้าง
Stephen C

5

ใน eclipse - คลิกที่โครงการแล้ว:

ป้อนคำอธิบายรูปภาพที่นี่.


ฉันไม่ได้ทำเครื่องหมาย 'แหล่งดาวน์โหลดสิ่งประดิษฐ์' ที่การตั้งค่า eclipse maven ดังนั้นจะดาวน์โหลดไหเท่านั้น แต่หลังฉันพยายามใช้วิธีแก้ปัญหานี้เพื่อดาวน์โหลดซอร์สมันล้มเหลวโดยไม่มีข้อความใด ๆ ฉันลบโฟลเดอร์ jar ในที่เก็บโลคัล maven และดาวน์โหลด jar อีกครั้งจากนั้น jar ต้นฉบับดาวน์โหลดสำเร็จ ฉันคิดว่าเป็นเพราะ maven local repository มี jar ดังนั้นฉันไม่สามารถใช้วิธีนี้ในการดาวน์โหลดซอร์สได้
ตรงไปตรงมา

4

คุณสามารถถ้าพวกเขาจะถูกอัปโหลด โดยทั่วไปจะเรียกว่า "frameworkname-version-source (s)"


4

NetBeans คลิกบริบท

ในNetBeans 8 ที่มีโปรเจ็กต์ขับเคลื่อนด้วย Maven เพียงคลิกบริบทบนไอเท็มรายการไฟล์ jar ของการพึ่งพาที่คุณสนใจ เลือกDownload Sourcesเลือกรอสักครู่และ NetBeans จะดาวน์โหลดและติดตั้งซอร์สโค้ดโดยอัตโนมัติหากมี

ในทำนองเดียวกันคุณสามารถเลือกDownload Javadocรับเอกสารที่ติดตั้งในเครื่องได้ จากนั้นคุณสามารถคลิกบริบทรหัสในตัวแก้ไขและเลือกดู JavaDoc

สกรีนช็อตของรายการเมนูบริบท "ดาวน์โหลดแหล่งข้อมูล" ที่ถูกเลือกในโครงการ NetBeans 8 ซึ่งขับเคลื่อนโดย Maven


3

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

ฉันลงเอยด้วยการใช้วิธีการของ @ GabrielRamierezแต่จะใช้วิธีการของ @ PascalThiventต่อไป


2

หากคุณรู้จักgroupIdและaritifactIdคุณสามารถสร้าง URL ดาวน์โหลดเช่นนี้

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>

http://central.maven.org/maven2/ch/qos/logback/logback-classic/

และคุณจะได้หน้าเช่นนี้เลือกรุ่นที่คุณต้องการเพียงแค่สนุกกับมัน! ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


1

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

ดังนั้นฉันแนะนำวิธีการของ Gabriel Ramirez


0

สำหรับการดีบั๊กคุณสามารถใช้ "Java Decompiler" เช่น: JAD และ decompile source ได้อย่างรวดเร็ว (แม้ว่าแหล่งที่สร้างขึ้นจะไม่เหมือนกับต้นฉบับ) จากนั้นติดตั้ง JAD เป็นปลั๊กอินใน Eclipse หรือ IDE ที่คุณชื่นชอบ


0

ที่เก็บ Maven จะให้วิธีง่ายๆในการดาวน์โหลด jar แหล่ง

ฉันจะอธิบายมันโดยใช้การสาธิตสำหรับ "spring-boot-actuator-autoconfigure"

  1. ไปที่ maven repository - https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure
  2. หน้าแสดงรายการเวอร์ชันต่าง ๆ คลิกเพื่อเลือกหนึ่งที่ต้องการสมมติว่า 2.1.6 ปล่อย - https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE
  3. หน้านี้มีลิงค์ "ดูทั้งหมด" ถัดจาก "ไฟล์" คลิกที่มัน - https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE/
  4. หน้าแสดงรายการไฟล์ต่าง ๆ รวมถึงไฟล์สำหรับแหล่งที่มา - https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE/spring-boot-actuator-autoconfigure -2.1.6.RELEASE-sources.jar

มิฉะนั้นคุณสามารถ "git clone" repo จาก github ได้ตลอดเวลาหากมีอยู่และรับรหัสเฉพาะ

ตามที่อธิบายโดยผู้อื่นคุณสามารถใช้คำสั่ง "mvn การพึ่งพา: แหล่งที่มา" รับและสร้างแหล่งขวดสำหรับการพึ่งพาที่คุณใช้

หมายเหตุ: การพึ่งพาบางอย่างจะไม่มี source.jar เนื่องจากไม่มีการอ้างอิงซอร์สโค้ด แต่เป็นไฟล์ pom เช่นฤดูใบไม้ผลิบูตเริ่มต้น-ตัวกระตุ้น เช่นเดียวกับในกรณีนี้:

Starter POM เป็นชุดของตัวอธิบายการอ้างอิงที่สะดวกซึ่งคุณสามารถรวมไว้ในแอปพลิเคชันของคุณ คุณจะได้รับร้านค้าครบวงจรสำหรับ Spring และเทคโนโลยีที่เกี่ยวข้องที่คุณต้องการโดยไม่ต้องค้นหารหัสตัวอย่างและคัดลอกวางคำอธิบายการพึ่งพา

การอ้างอิง: แนะนำให้รู้จักกับ Spring Boot Starters


0

ใน IntelliJ IDEA คุณสามารถดาวน์โหลดแหล่งที่มาของสิ่งประดิษฐ์โดยอัตโนมัติในขณะที่นำเข้าโดยการเปิดตัวเลือกการดาวน์โหลดโดยอัตโนมัติ:

Settings→การ Build, Execution, Deployment→การBuild Tools→การMaven→การImporting

ป้อนคำอธิบายรูปภาพที่นี่


0

หากคุณต้องการค้นหาไฟล์ jar ต้นฉบับสำหรับสิ่งประดิษฐ์ใด ๆ ด้วยตนเองไปที่ตำแหน่งที่เก็บ maven สำหรับสิ่งประดิษฐ์เฉพาะและในไฟล์คลิกที่ 'ดูทั้งหมด' คุณสามารถค้นหาไฟล์ jar ต้นฉบับ

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