วิธีกำหนดค่า Eclipse build path เพื่อใช้ Maven dependencies?


124

ฉันต้องการใช้ประโยชน์จากคุณสมบัติที่ Maven มีให้สำหรับการจัดการการอ้างอิงในโครงการ ความเข้าใจสั้น ๆ ของฉันเกี่ยวกับวิธีการทำงานของ Maven คือจะได้รับ JAR ที่จำเป็นจากนั้นสร้างโครงการด้วยไลบรารีเหล่านี้

ขณะนี้ฉันมีไฟล์ POM ง่ายๆที่ตั้งค่าเป็นแบบทดสอบ:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jamesgoodwin.test</groupId>
  <artifactId>com.jamesgoodwin.test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.0.0.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

ในการจัดการการอ้างอิงฉันมักจะเพิ่มโครงการหรือ JAR ลงในเส้นทางการสร้างจากนั้นฉันจะสามารถสร้างโครงการของฉันได้ ..

แต่เมื่อใช้M2Eclipseการอ้างอิงจะไม่ถูกเพิ่มโดยอัตโนมัติในเส้นทางการสร้าง มีการกำหนดค่าใด ๆ เพื่อให้ Eclipse รู้ว่า Maven กำลังจัดการการอ้างอิงหรือไม่?

คำตอบ:


116

หากคุณคลิกขวาที่โครงการของคุณควรมีตัวเลือกภายใต้ "maven" เพื่อ "เปิดใช้งานการจัดการการพึ่งพา" แค่นั้นแหละ.


2
m2eclipse จะไม่ทำสิ่งนี้โดยค่าเริ่มต้นหากคุณอิมพอร์ตโปรเจ็กต์ที่สร้างด้วย mvn eclipse: eclipse ดังนั้นสิ่งนี้จึงดูเหมือนว่าจะทำให้ผู้คนสนใจเสมอ
แมตต์ข

28
มันถูกเปิดใช้งานสำหรับโครงการของฉันแล้ว อาจเป็นเพราะฉันเลือกที่จะเพิ่มไฟล์ POM ในโปรเจ็กต์ที่มีอยู่? อย่างไรก็ตามการทำ Maven> การกำหนดค่าโครงการอัปเดตดูเหมือนว่าจะได้รับการแก้ไขให้ฉันแล้ว นอกจากนี้ยังเป็นคำตอบของคุณที่ทำให้ฉันค้นพบแถบเครื่องมือนั้นในที่สุดซึ่งฉันสามารถแก้ไขโครงการได้ ขอบคุณมาก
James Goodwin

12
จะเกิดอะไรขึ้นถ้าไม่มีตัวเลือก "Maven" ในเมนูคลิกขวาแม้ว่าดูเหมือนว่าฉันจะติดตั้ง m2eclipse แล้วก็ตาม
dfrankow

85
อ่า "Configure" => "Convert to Maven Project" คือเพื่อนของคุณ!
dfrankow

2
@dfrankow ถ้าไม่มีตัวเลือก "Configure" => "Convert to Maven Project" ??
vasilakisfil

67

ถ้าคุณดำเนินการ

mvn eclipse:clean

ติดตามโดย

mvn eclipse:eclipse

ถ้าจะเตรียม.classpathไฟล์eclipse ให้คุณ นั่นคือคำสั่งเหล่านี้รันกับ maven จากบรรทัดคำสั่งเช่นนอก eclipse


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

@matt b: คุณต้องทำซ้ำ mvn eclipse: eclipse ทุกครั้งที่การอ้างอิงของคุณเปลี่ยนไป
Buhb

หากต้องการเพิ่มสิ่งที่ Buhb กล่าวให้ทำ mnv eclipse: eclipse บนบรรทัดรับคำสั่งและรีเฟรชโปรเจ็กต์ Eclipse ทุกครั้งที่คุณเพิ่ม deps เพิ่มเติมใน pom.xml
Binil Thomas

5
ไม่จำเป็นสำหรับสิ่งนี้เมื่อใช้ปลั๊กอิน m2eclipse
Pascal Thivent

3
ฉันใช้ปลั๊กอิน m2eclipse และประสบปัญหาหลังจากอิมพอร์ตโปรเจ็กต์ maven ที่มีอยู่ใน eclipse ทำจริงmvn eclipse:cleanและmvn eclipse:eclipseแก้ไขปัญหาให้ฉัน
aioobe

29

ฉันสมมติว่าคุณใช้ m2eclipse ตามที่คุณกล่าวไว้ อย่างไรก็ตามยังไม่ชัดเจนว่าคุณสร้างโครงการภายใต้ Eclipse หรือไม่ดังนั้นฉันจะพยายามครอบคลุมทุกกรณี

  1. หากคุณสร้างโปรเจ็กต์ "Java" ภายใต้ Eclipse (Ctrl + N> Java Project) จากนั้นคลิกขวาที่โปรเจ็กต์ใน มุมมองPackage Explorerและไปที่Maven> Enable Dependency Management (ขึ้นอยู่กับโครงสร้างโปรเจ็กต์เริ่มต้นคุณอาจมีการปรับเปลี่ยน เพื่อให้ตรงกับ maven ของตัวอย่างเช่นโดยการเพิ่มsrc/javaลงในโฟลเดอร์ซอร์สบนเส้นทางการสร้าง)

  2. หากคุณสร้าง "Maven Project" ภายใต้ Eclipse (Ctrl + N> Maven Project) แสดงว่า "Maven พร้อมใช้งาน" แล้ว

  3. หากคุณสร้างโปรเจ็กต์ Maven นอก Eclipse (ด้วยตนเองหรือด้วยอาร์คีไทป์) ให้นำเข้าใน Eclipse ( คลิกขวาที่ มุมมองPackage Explorerแล้วเลือกนำเข้า ... > โครงการ Maven ) และจะเป็น "Maven พร้อม"

ตอนนี้หากต้องการเพิ่มการอ้างอิงให้คลิกขวาที่โปรเจ็กต์แล้วเลือกMaven> เพิ่มการพึ่งพา ) หรือแก้ไขปอมด้วยตนเอง

PS: หลีกเลี่ยงการใช้maven-eclipse-pluginหากคุณใช้ m2eclipse ไม่จำเป็นอย่างยิ่งมันจะสับสนมันจะสร้างความยุ่งเหยิง ไม่จริงอย่าใช้มันเว้นแต่คุณจะรู้จริงๆว่าคุณกำลังทำอะไรอยู่


2
เพิ่งพบว่า maven-eclipse-plugin เป็นสาเหตุของข้อผิดพลาดการพึ่งพาที่ไม่ได้รับการแก้ไขที่แปลกประหลาดของฉัน ขอบคุณ!
vaughan

1
ฉันเพิ่งใช้ EclipseNeon ที่ดาวน์โหลดจากเว็บไซต์อย่างเป็นทางการ .. ไม่มีตัวเลือก Maven ในเมนูหลังจากที่ฉันสร้างโปรเจ็กต์ java มาตรฐานเราจำเป็นต้องติดตั้งบางอย่างแยกกันหรือทุกอย่างดาวน์โหลดด้วย Neon แล้ว?
Ewoks

@Pascal Thivent ฉันได้นำเข้าโครงการ Maven ฉันไม่พบวิธีแก้ปัญหานี้
Syed

19

เพิ่มสิ่งนี้ในไฟล์. classpath ..

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
    </attributes>
</classpathentry>

ขอบคุณ


1
ใช่ฉันต้องเพิ่มสิ่งนั้นด้วยตนเองทุกที่ในช่วงสองสามปีที่ผ่านมา .... ทำไมพวกเขาไม่ใช้ปลั๊กอิน eclipse เพื่อเรียกคืนการพึ่งพา maven โดยอัตโนมัติ ??
มีดโกน

1
ขอบคุณสำหรับการแก้ปัญหานี้ สิ่งนี้ได้ผลสำหรับฉัน ฉันลบไฟล์. project และ. classpath โดยไม่ได้ตั้งใจ วิธีนี้ใช้ได้ผลสำหรับฉันในการเพิ่มการพึ่งพา maven ในเส้นทางชั้นเรียน
Tahir Mehmood

ทางลัดในการสร้างไฟล์. classpath ด้านบนโดยอัตโนมัติคือ Project -> Maven -> Update Project หรือเพียงแค่ Alt + F5
Venkateswara Rao

ทำงานให้ฉันด้วย แก้ไขการอ้างอิงส่วนใหญ่ที่ขาดหายไปของฉัน แต่ยังคงมีปัญหาอยู่สองสามข้อดังนั้นฉันจึงสงสัยว่าโซลูชันที่ใช้งานง่ายกว่านั้นไม่ได้ผลหรือไม่เพราะมีข้อผิดพลาดเล็กน้อยอยู่ที่ไหนสักแห่ง (แต่พฤติกรรมนี้ไม่ได้ช่วยแก้ไขปัญหา ... )
xenoid

14

คลิกขวาที่โครงการกำหนดค่า> แปลงเป็นโครงการ Maven

จากนั้นคุณจะเห็นเมนูที่เกี่ยวข้องกับ Maven ทั้งหมดสำหรับโครงการของคุณ


วิธีที่ถูกต้องหากคุณไม่ได้สร้างโครงการ mvn ตั้งแต่แรก
Hannes Schneidermayer

10

ฉันทำแบบนี้ ..

คลิกขวาที่โครงการ -> กำหนดค่า -> แปลงเป็นโครงการ maven คลิกขวาที่โครงการ -> maven -> เพิ่มการอ้างอิง


5

ใน Eclipse (Mars) ไปที่:

คุณสมบัติโครงการ -> Maven ตรวจสอบให้แน่ใจว่า "การอ้างอิงการแก้ปัญหาจากโครงการพื้นที่ทำงาน" เป็นคนพิการ


สิ่งนี้ไม่ได้แก้ปัญหาเดิม แต่มันแก้ปัญหาจู้จี้อื่น ๆ ที่ฉันมีมาหลายสัปดาห์ - หลังจากปิดใช้งานตัวเลือกนั้นโปรเจ็กต์ของฉันซึ่งทำงานจากบรรทัดคำสั่ง maven เท่านั้นตอนนี้กำลังทำงานอีกครั้งภายใน eclipse! ขอบคุณ!
Bill Hileman

4

ฉันไม่พบเมนู maven หรือกำหนดค่า แต่พบปุ่มต่อไปนี้ที่ช่วยแก้ปัญหาของฉัน:

ใส่คำอธิบายภาพที่นี่


2

เมื่อติดตั้ง m2eclipse อย่างถูกต้องควรเพิ่มการอ้างอิงโดยอัตโนมัติ อย่างไรก็ตามคุณควรสร้างไฟล์โครงการ eclipse โดยป้อน:

mvn eclipse:m2eclipse

หรือถ้าคุณไม่ใช้ m2eclipse:

mvn eclipse:eclipse

3
ข้อควรระวัง: เนื่องจากเวอร์ชัน 2.8 maven-eclipse-plugin ไม่รองรับ "eclipse: m2eclipse" อีกต่อไป (ไม่พบเหตุผล / ข้อมูลว่าทำไม)
Wolkenarchitekt

1

ฉันมีการเปลี่ยนแปลงเล็กน้อยที่ทำให้เกิดปัญหา - โครงการย่อยหลายโครงการภายในโครงการเดียว ในกรณีนี้ฉันต้องเข้าไปในแต่ละโฟลเดอร์ที่มี POM ให้รันคำสั่ง mvn eclipse: eclipse จากนั้นคัดลอก / รวมรายการ classpath ลงในไฟล์ classpath โครงการของฉันด้วยตนเอง


1

สำหรับ Eclipse เวอร์ชันใหม่กว่า (> = Mars) ให้คลิกขวาที่โครงการ> กำหนดค่า> แปลงเป็นโครงการ Maven


1

การเพิ่มคำตอบของฉันด้วยเหตุผลสองประการ:

  • อย่างไรก็ตามไม่มีคำตอบใดในรายการที่ช่วยแก้ปัญหาของฉันได้โดยตรง
  • ฉันไม่พบ "เปิดใช้งานการจัดการการพึ่งพา" ใน Maven ฉันใช้ Eclipse 4.4.2 build เมื่อวันพุธที่ 4 กุมภาพันธ์ 2015

สิ่งที่ช่วยฉันคืออีกทางเลือกหนึ่งภายใต้ Maven เรียกว่า "Update Project" จากนั้นเมื่อฉันคลิกหน้าต่างนี้จะเปิดขึ้นซึ่งมีช่องทำเครื่องหมายที่ระบุว่า "Force update of Snapshot / Releases" จุดประสงค์ที่แท้จริงของช่องทำเครื่องหมายนี้แตกต่างกันที่ฉันรู้ แต่ก็แก้ไขปัญหาการอ้างอิงได้ ใส่คำอธิบายภาพที่นี่


1

ไม่มีสิ่งใดที่ช่วยแก้ปัญหาของฉันได้ แต่สิ่งที่ฉันทำคือถ้าคลิกที่ pom.xml จะมีแท็บที่ด้านล่างชื่อการอ้างอิง ในแท็บนี้แบ่งออกเป็น 2 ส่วนส่วนหนึ่งเรียกว่าการพึ่งพาและส่วนที่เรียกว่าการจัดการการพึ่งพา เลือกทุกสิ่งในส่วนการพึ่งพาและคลิกเพิ่มเพื่อให้อยู่ภายใต้การควบคุมการจัดการการพึ่งพา ปิดและเปิดโครงการของคุณอีกครั้ง


0

บางทีคุณอาจมองเข้าไปในmaven-eclipse-pluginแทน M2Eclipse

โดยพื้นฐานแล้วคุณจะเพิ่มการกำหนดค่า maven-eclipse-plugin ใน pom.xml ของคุณจากนั้นดำเนินการmvn eclipse:eclipseซึ่งจะสร้างไฟล์.projectและ.classpathไฟล์ที่จำเป็นสำหรับ Eclipse จากนั้นคุณจะมีเส้นทางการสร้างที่ถูกต้องใน Eclipse


eclipse: eclipse ไม่ดีเพิ่มไลบรารีทั้งหมดทีละรายการในการอ้างอิงของคุณแทนที่จะพึ่งพา Maven
razor

0

ตรวจสอบให้แน่ใจ POM ของคุณต่อการตั้งชื่อและมีชื่ออยู่ในตัวอักษรตัวพิมพ์เล็กเป็นและไม่pom.xmlPOM.xml

ในกรณีของฉันทุกอย่างถูกต้อง แต่ Eclipse ยังคงบ่นเมื่อพยายามคลิกขวาและUpdate project configuration- บอกฉันว่าไม่สามารถอ่าน POM ได้ เปลี่ยนชื่อเป็นตัวพิมพ์เล็ก - pom.xmlจากPOM.xml- และใช้งานได้


0

เจอปัญหานี้เหมือนกัน เมื่อฉันเพิ่มการอ้างอิงในไฟล์pom.xmlฉันตรวจสอบในโฟลเดอร์ภายในเครื่อง/Users/xyz/.m2/และมีการดาวน์โหลด jars ที่นั่นแล้ว แต่ไม่สามารถเพิ่ม buildpath ของ eclipse ได้

เวอร์ชันคราสของฉัน: Mars.2 Release (4.5.2)

คลิกขวาที่โปรเจ็กต์ > Maven > เปิดใช้งานการแก้ปัญหาพื้นที่ทำงาน

และสิ่งนี้ช่วยแก้ปัญหาของฉันได้


0

โดยทั่วไปคุณสามารถคัดลอกไฟล์. classpath จากโปรเจ็กต์ที่ใช้งานได้เนื่องจากไม่มีโปรเจ็กต์ใดที่เฉพาะเจาะจงที่นี่โดยสมมติว่าคุณมีโครงสร้างเป็นโปรเจ็กต์ Maven มาตรฐาน


0

สิ่งนี้ใช้ได้ผลสำหรับฉันใน Eclipse Oxygen (4.7.0):

คลิกขวาที่ Project -> Maven -> เลือก Maven Profiles ... จากนั้นทำเครื่องหมายที่ช่อง Repository Proxy แล้วกด OK

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