แปลงโครงการ Eclipse ที่มีอยู่เป็นโครงการ Maven


246

สำหรับโครงการในที่ทำงานเรากำลังพิจารณาใช้ปลั๊กอิน Maven สำหรับ Eclipse เพื่อสร้างงานของเราโดยอัตโนมัติ ตอนนี้ขั้นตอนนั้นซับซ้อนกว่าที่ควรจะเป็นและเราหวังว่า Maven จะลดความซับซ้อนของสิ่งต่าง ๆ ให้เป็นแบบคลิกเดียว

คำถามของฉันคือมีตัวช่วยสร้างหรือผู้นำเข้าอัตโนมัติสำหรับการแปลงโครงการ Eclipse Java ที่มีอยู่ไปเป็นโครงการ Maven โดยใช้ปลั๊กอิน Maven หรือไม่ หรือฉันควรสร้างโครงการ Maven ใหม่และคัดลอกไฟล์ต้นฉบับ libs และอื่น ๆ ด้วยตนเอง


3
งานสร้างที่มีอยู่ของคุณใช้สคริปต์ Ant หรือไม่
matt b

4
คุณน่าจะเปลี่ยนคำตอบที่ยอมรับ
Mr_and_Mrs_D

คำตอบ:


141

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

ปลั๊กอิน m2eclipse มีตัวเลือกคลิกขวาในโครงการเพื่อเพิ่ม pom.xml เริ่มต้นนี้:

รุ่น M2E ที่ใหม่กว่า

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

รุ่น M2E ที่เก่ากว่า

คลิกขวาที่โครงการ -> เมนูย่อย Maven -> เปิดใช้งานการจัดการการพึ่งพา

มันจะทำสิ่งที่จำเป็นเพื่อเปิดใช้งานปลั๊กอินสำหรับโครงการนั้น


ในการตอบ ' มีผู้นำเข้าหรือตัวช่วยสร้างอัตโนมัติหรือไม่ ': ไม่ใช่ที่ฉันรู้ การใช้ตัวเลือกข้างต้นจะช่วยให้คุณเปิดใช้งานปลั๊กอิน m2eclipse สำหรับโครงการที่มีอยู่ของคุณหลีกเลี่ยงการคัดลอกด้วยตนเอง คุณจะต้องตั้งค่าการอ้างอิงและสิ่งอื่น ๆ ที่คุณต้องสร้างเอง


แม้ว่าจะเปิดใช้งาน M2Eclipse แต่ตัวช่วยสร้างไม่ได้นำเข้าโครงการ Eclipse ที่มีอยู่จริง ๆ ค่อนข้างจะทำให้ผู้ใช้มีทางเลือกในการเลือกการพึ่งพา ฯลฯ ซึ่งอาจเป็นเรื่องยากหากผู้ใช้ไม่มีประสบการณ์มากกับ Maven
Kaleb Pederson

ฉันตีความคำถามว่า 'ฉันต้องสร้างโครงการใหม่และคัดลอกสิ่งต่าง ๆ ด้วยตนเองเพื่อใช้ปลั๊กอิน m2eclipse หรือไม่' ฉันจะอธิบายให้ชัดเจน
Brabster

16
รายการเมนู maven ไม่สามารถใช้ได้สำหรับฉันจากเมนูคลิกขวา (m2eclipse ล่าสุด) คำตอบของ chengdong ใช้ได้
wulfgarpro

8
ในเวอร์ชันปัจจุบันของ Eclipse (4.2) และ m2eclipse รายการเมนูคือการแปลง / แปลงเป็นโครงการ Maven
Jesper

12
รายการเมนู @Jesper คือ "Configure / Convert to Maven Project"
angelcervera

293

เริ่มต้นจาก m2e 0.13.0 (หากไม่ใช่ก่อนหน้า) คุณสามารถแปลงโครงการ Java เป็นโครงการ Maven จากเมนูบริบท นี่คือวิธี:

  • คลิกขวาที่โครงการ Java เพื่อเปิดเมนูบริบท
  • เลือกกำหนดค่า> แปลงเป็นโครงการ Maven

นี่คือขั้นตอนโดยละเอียดกับภาพหน้าจอ


30
สิ่งนี้ยังไม่ได้สร้างโครงสร้างไดเรกทอรีและเพิ่มการพึ่งพาใน pom
Klaus Nji

2
ไม่ m2e ยังไม่สร้างโครงสร้างไดเรกทอรี maven และเพิ่มการอ้างอิงใน pom?
Mr_and_Mrs_D

2
โซลูชันของฉัน (@ShriKant Vashishtha) ที่กล่าวถึงด้านล่างช่วยแก้ปัญหาทั้งหมดที่อธิบายไว้ที่นี่ สร้างโครงสร้าง Maven ลบช่องว่างในชื่อโฟลเดอร์สร้าง pom.xml และย้ายโฟลเดอร์ต้นทางในโครงสร้าง Maven
ShriKant Vashishtha

ทำงานได้อย่างสมบูรณ์แบบและไร้ที่ติใน Windows 10 Eclipse Mars ในเวลานั้น
Matthis Kohli

มันทำงานได้สมบูรณ์แบบสำหรับฉัน
WitnessTruth

12

ฉันมีปัญหาเดียวกันและต้องการที่จะ Mavenise พื้นที่ทำงานทั้งหมดของ eclipse ที่มีประมาณ 60 โครงการ Eclipse การทำเช่นนั้นต้องใช้เวลาและตัวเลือกอื่น ๆ ด้วยตนเองไม่สามารถใช้งานได้ เพื่อแก้ปัญหาในที่สุดฉันก็สร้างโครงการที่เรียกว่าeclipse-to-mavenบน github เนื่องจาก eclipse ไม่มีข้อมูลที่จำเป็นทั้งหมดเกี่ยวกับการขึ้นต่อกันมันจึงทำสิ่งต่อไปนี้:

  • ขึ้นอยู่กับ<classpathentry/>องค์ประกอบ XML ในไฟล์. classpath มันสร้างการอ้างอิงในโครงการอื่นระบุไฟล์ไลบรารี jar และยึดตามชื่อของมัน (เช่น jakarta-oro-2.0.8.jar) ระบุเวอร์ชันของมัน ปัจจุบันartifactIdและgroupIdเช่นเดียวกับที่ฉันไม่สามารถหาสิ่งที่จะกลับมาฉัน Maven groupID artifactIdของการพึ่งพาบนพื้นฐานของ แม้ว่านี่จะไม่ใช่โซลูชันที่สมบูรณ์แบบ แต่ก็มีพื้นที่ที่ดีในการเร่ง Mavenisation

  • มันย้ายโฟลเดอร์ต้นทางทั้งหมดตามระเบียบ Maven (เช่นsrc/main/java)

  • เนื่องจากโปรเจ็กต์ Eclipse ที่มีชื่อพร้อมช่องว่างนั้นยากต่อการจัดการบนสภาวะแวดล้อม Linux / Unix จึงเปลี่ยนชื่อเป็นชื่อที่ไม่มีช่องว่าง

  • ไฟล์ pom.xml ที่เป็นผลลัพธ์ประกอบด้วยการอ้างอิงและโครงสร้าง pom พื้นฐาน คุณต้องเพิ่มปลั๊กอิน Maven ที่จำเป็นด้วยตนเอง


น่าสนใจ! ส่งไปที่ Luna หรือเปล่า โครงการจะยังคงเป็นโครงการ eclipse (ใช้ได้.classpathและ.projectไฟล์) คุณสามารถเพิ่มคำตอบของคุณในการใช้ปลั๊กอินเพื่อทำให้โครงการ JavaSE ง่ายขึ้นได้อย่างไรและอะไรคือการเปลี่ยนแปลงที่แท้จริงในโครงสร้างไดเรกทอรี?
Mr_and_Mrs_D

ขออภัยฉันไม่รู้ว่าลูน่าคืออะไร จะไม่เป็นโครงการ eclipse ที่ถูกต้องอีกต่อไปเนื่องจากโครงสร้างไดเรกทอรีโครงการได้รับการเปลี่ยนแปลง อย่างไรก็ตามการสร้างการกำหนดค่าคราสที่แก้ไขโดยใช้ Maven นั้นง่าย นี่ไม่ใช่ปลั๊กอิน แต่เป็นเครื่องมือ วิธีการเรียกใช้มีการกล่าวถึงใน README ของโครงการแล้ว โครงสร้างไดเรกทอรีได้รับการแปลงในแบบแผน Maven ดังนั้นแหล่งที่มาทั้งหมดไปที่ src / main / java เป็นต้น
ShriKant Vashishtha

Luna เป็นคราสรุ่นล่าสุด !!
Mr_and_Mrs_D

7

คลิกขวาที่ชื่อโครงการ> กำหนดค่า> แปลงเป็นโครงการ Maven> คลิกเสร็จสิ้น ที่นี่คุณจะเพิ่มการอ้างอิงเพื่อดาวน์โหลดและเพิ่มไฟล์ jar ที่คุณคาดไว้

สิ่งนี้จะสร้างไฟล์ pom.xml ที่สร้างขึ้นโดยอัตโนมัติ เปิดไฟล์นั้นในรูปแบบ xml ในโปรแกรมแก้ไข eclipse ของคุณ หลังจากสร้างแท็ก ( </build>) เพิ่มการอ้างอิงของคุณซึ่งคุณสามารถคัดลอกจากเว็บไซต์ Maven และเพิ่มได้ ตอนนี้คุณก็พร้อมแล้ว การพึ่งพาเหล่านี้จะเพิ่มไฟล์ jar ที่คุณต้องการโดยอัตโนมัติ


1
สิ่งนี้จะสร้างโครงสร้างโฟลเดอร์ maven หรือไม่
Mr_and_Mrs_D

ใช่มันจะสร้างโครงสร้างโฟลเดอร์ maven ตามเทมเพลต archetype ที่แมปที่เหมาะสมและการกำหนดค่าขั้นต่ำ คุณต้องเพิ่มการอ้างอิงแต่ละโครงการ (จาก. classpath) ลงใน POM.xml ด้วยตนเองทีละครั้ง
Pratap Singh เมื่อ

5

คำตอบ Chengdong Configure>Convert to Maven Projectเป็นที่ถูกต้องคุณควรใช้ อย่างไรก็ตามฉันต้องเพิ่มกระบวนการแปลงได้รับการปรับปรุงอย่างมากเนื่องจาก m2e 0.13.0: m2e 1.1+ และ m2e-wtp 0.16.0+ ตอนนี้สามารถแปลงการตั้งค่าคราสที่มีอยู่เป็นการกำหนดค่าปลั๊กอิน mavenปลั๊กอินการกำหนดค่า

สำหรับเรื่องการแปลงที่ต้องพึ่งพาคุณสามารถลองใช้ JBoss Tools (JBT) 4.0 Maven รวมคุณสมบัติซึ่งมีตัวช่วยสร้างการแปลงทดลองเชื่อมต่อกับกระบวนการแปลงของ m2e: http://docs.jboss.org/tools/whatsnew/maven/ Maven-ข่าว

มันไม่ได้หลอกว่าเป็นทางออกที่ดีที่สุด (ไม่มีอะไรสามารถทำได้) ไม่ว่ามันจะช่วยให้คุณเริ่มกระบวนการแปลง Maven ได้อย่างมาก

นอกจากนี้ FYI ต่อไปนี้เป็นแนวคิดในการปรับปรุงกระบวนการแปลงของ m2e การปรับโครงสร้างการใช้ Maven layout ใหม่อาจจะนำไปใช้ในอนาคต

JBT 4.0 (ต้องใช้ Eclipse JavaEE Juno) สามารถติดตั้งได้จากhttp://download.jboss.org/jbosstools/updates/stable/juno/หรือจาก Eclipse Marketplace


4

มันจำเป็นเพราะมากหรือน้อยเมื่อเรานำเข้าโครงการจากคอมไพล์ไม่ใช่โครงการ maven ดังนั้นการพึ่งพา maven จึงไม่ได้อยู่ในเส้นทางการสร้าง

นี่คือสิ่งที่ฉันได้ทำเพื่อเปลี่ยนโครงการทั่วไปเป็นโครงการ Maven

โปรเจ็กต์ทั่วไป -> โปรเจ็กต์ java คลิกขวาที่โปรเจ็กต์, คุณสมบัติ -> โปรเจ็กต์ facets, คลิก "java" ขั้นตอนนี้จะเปลี่ยนโครงการทั่วไปเป็นโครงการ Java

โครงการ Java -> โครงการ Maven คลิกขวาที่โครงการกำหนดค่า -> แปลงเป็นโครงการ Maven ในขณะนี้การพึ่งพา Maven lib ยังคงไม่ได้อยู่ในเส้นทางการสร้าง คุณสมบัติโครงการสร้างเส้นทาง, เพิ่มไลบรารีเพิ่ม maven dependencies lib

และรอสักครู่เมื่อโหลดการอ้างอิงโปรเจ็กต์พร้อมแล้ว!


2

มีโปรแกรมบรรทัดคำสั่งเพื่อแปลงโครงการ Java ใด ๆ ให้เป็นโครงการ SBT / Maven

มันจะแก้ปัญหาไหทั้งหมดและพยายามที่จะหาเวอร์ชั่นที่ถูกต้องโดยพิจารณาจากผลรวมตรวจสอบ SHA คลาสพา ธ หรือชื่อไฟล์ จากนั้นจะพยายามรวบรวมแหล่งข้อมูลจนกว่าจะพบการกำหนดค่าที่ใช้งานได้ งานที่กำหนดเองเพื่อดำเนินการตามการกำหนดค่าการอ้างอิงสามารถให้เกินไป

UniversalResolver 1.0
Usage: UniversalResolver [options]

  -s <srcpath1>,<srcpath2>... | --srcPaths <srcpath1>,<srcpath2>...
        required src paths to include
  -j <jar1>,<jar2>... | --jars <jar1>,<jar2>...
        required jars/jar paths to include
  -t /path/To/Dir | --testDirectory /path/To/Dir
        required directory where test configurations will be stored
  -a <task1>,<task2>... | --sbt-tasks <task1>,<task2>...
        SBT Tasks to be executed. i.e. compile
  -d /path/To/dependencyFile.json | --dependencyFile /path/To/dependencyFile.json
        optional file where the dependency buffer will be stored
  -l | --search
        load and search dependencies from remote repositories
  -g | --generateConfigurations
        generate dependency configurations
  -c <value> | --findByNameCount <value>
        number of dependencies to resolve by class name per jar

https://bitbucket.org/mnyx/universalresolver


ดูเหมือนว่าตัวเลือกที่น่าสนใจมาก แต่เนื่องจากมันบรรจุอยู่ในปัจจุบันจึงไม่สามารถเข้าถึงได้มาก ไม่ชัดเจนว่าจะจัดแพคเกจและปรับใช้ซอร์สโค้ดได้อย่างไร นักพัฒนา Java ส่วนใหญ่ไม่ใช่นักพัฒนา Scala และ SBT เป็นเครื่องมือที่ใช้กันอย่างแพร่หลายในชุมชน
A. Rick

1

คำถามของฉันคือมีตัวช่วยสร้างหรือผู้นำเข้าอัตโนมัติสำหรับการแปลงโครงการ Eclipse Java ที่มีอยู่ไปเป็นโครงการ Maven โดยใช้ปลั๊กอิน Maven หรือไม่

เท่าที่ฉันรู้ไม่มีอะไรที่จะแปลงโครงการ Eclipse ให้เป็นโครงการ Maven โดยอัตโนมัติ (เช่นแก้ไขโครงร่างสร้าง POM, "สร้าง" และป้อนด้วยเมตาดาต้าตรวจจับไลบรารี่และเวอร์ชันของมันเพื่อเพิ่มลงใน POM ฯลฯ ) Eclipse มีข้อมูลเมตาไม่เพียงพอที่จะทำให้สิ่งนี้เป็นจริง (นี่คือจุด POM) และ / หรือเพื่อให้ได้ผลลัพธ์ที่ดี

หรือฉันควรสร้างโครงการ Maven ใหม่และคัดลอกไฟล์ต้นฉบับ libs และอื่น ๆ ด้วยตนเองทั้งหมด

นั่นจะเป็นตัวเลือกที่ดีที่สุดในความคิดของฉัน สร้างโครงการ Maven คัดลอก / ย้ายแหล่งข้อมูลทดสอบทดสอบทรัพยากรลงในไดเรกทอรีที่เกี่ยวข้องประกาศการอ้างอิง ฯลฯ


ทำไมคำตอบนี้ถึงสูงกว่า +199 คำตอบ ฉันเกือบจะไม่เห็นสิ่งนั้น
Evorlor

1

สำหรับการแปลงเป็น Gradle จะคล้ายกับ Maven:

คลิกขวาที่โครงการ -> เมนูย่อยกำหนดค่า -> แปลงเป็นโครงการ Gradle (STS)


4
คำตอบนั้นไม่เกี่ยวข้องกับคำถาม
Ripon Al Wasim

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