บังคับ Intellij IDEA ให้อ่านการอ้างอิง Maven ทั้งหมด


297

วิธีบังคับให้แนวคิดของ Intellij อ่านซ้ำ / อัปเดตการอ้างอิงทั้งหมดที่ระบุในไฟล์ pom ได้อย่างไร

คำตอบ:


354

กดCtrl+ Shift+ Aเพื่อค้นหาการกระทำและป้อน "นำเข้าใหม่" คุณจะพบ "การนำเข้าโครงการ Maven ทั้งหมด"

สำหรับ Mac ให้ใช้+ + Aแทน


1
ให้บอกว่าฉันมี 5 โมดูลทั้งหมดนั้นทำตามโครงการในโครงการเดียวและฉันทำสิ่งนี้ คำสั่งนี้ใช้กับโมดูลทั้งหมดเฉพาะหนึ่งโมดูลที่เลือกหรือหนึ่งโมดูลแรกในโครงการเมื่อรันหรือไม่
slartibartfast

สิ่งนี้มีการเปลี่ยนแปลงหรือไม่ ฉันไม่เห็นการนำเข้าใหม่ในปี 2017.1 ใน Maven
Winnemucca

1
@ Winemucca ฉันเพิ่งทำมันในปี 2017.2 รอให้เสร็จในตอนนี้
mrClean

1
ฉันต้องเปิดใช้งานปลั๊กอิน Maven เพื่อทำสิ่งนี้
codefreak

1
@ Winemucca คุณสามารถคลิกขวาบน pom ไปที่ Maven ในเมนูดรอปดาวน์แล้วเลือก Reimport
jones-chris

125

เปิดแท็บ / หน้าต่าง "Maven Projects" และคลิกที่ "Reimport All Maven Projects" ที่มุมบนซ้ายเริ่มโหลดการอ้างอิงทั้งหมดจากแหล่งเก็บข้อมูล แถบสถานะแจ้งเกี่ยวกับกระบวนการ

อะไรที่ทำให้คุณคิดว่าสิ่งนี้ทำงานไม่ถูกต้อง บางทีการอ้างอิงใด ๆ ไม่สามารถโหลดได้จากที่เก็บ?


1
เรามีนิสัยที่ขาดการใช้เวอร์ชันที่ไม่จับภาพเพื่อการพัฒนาที่กำลังดำเนินอยู่และบางครั้งการพึ่งพาข้ามโครงการก็ล้มเหลว
kubek2k

1
ฉันเกรงว่าปัญหานี้ขึ้นอยู่กับการจัดการ Maven ตรวจสอบการอัพเดตบน SNAPSHOT เท่านั้น ตามคำนิยามเวอร์ชันที่ไม่ใช่ SNAPSHOT จะไม่เปลี่ยนแปลงดังนั้น maven จึงไม่ต้องตรวจสอบเวอร์ชันที่ใหม่กว่านี้ในที่เก็บในเครื่อง วิธีการแก้ปัญหา (ค่อนข้างหยาบ) คือการลบห้องสมุดออกจากพื้นที่เก็บข้อมูลในท้องถิ่นก่อนที่จะเรียก Maven จากนั้นจะต้องโหลดห้องสมุดใหม่
magomi

9
ปรากฏว่านำเข้ามาใหม่ทุกกองกำลังธง -U สิ่งที่เป็นสิ่งที่ฉันต้องการ :)
kubek2k

ฉันคลิกขวาที่โครงการหลักและทำ Maven -> นำเข้าใหม่และหวังว่ามันจะอัปเดตการพึ่งพาของเด็กทุกคน แต่ก็ไม่ได้ ขอบคุณสำหรับการแก้ปัญหา!
botchniaque

6
หากต้องการค้นหาแท็บ / หน้าต่าง "Maven Projects" ให้ไปที่ View> Tool Windows> Maven Projects
Kevin Wheeler

64

นอกจากนี้ยังมีการตั้งค่าที่มีประโยชน์อย่างหนึ่งที่บอกให้ IntelliJ ตรวจสอบการพึ่งพาเวอร์ชันใหม่แม้ว่าหมายเลขเวอร์ชันจะไม่เปลี่ยนแปลง เรามีที่เก็บ maven ในพื้นที่และโครงการสแน็ปช็อตที่ได้รับการอัปเดตสองสามครั้ง แต่หมายเลขเวอร์ชันยังคงเหมือนเดิม ปัญหาคือว่า IntelliJ / Maven ไม่ได้อัปเดตโครงการนี้เนื่องจากหมายเลขรุ่นคงที่

หากต้องการเปิดใช้งานการตรวจสอบการพึ่งพาที่เปลี่ยนแปลงแม้ว่าหมายเลขเวอร์ชันจะไม่เปลี่ยนไปที่แท็บ "โครงการ Maven" ให้เลือก "การตั้งค่า Maven" และเปิดใช้งาน "อัปเดตภาพรวมเสมอ"


2
ฮ่า! การอัปเดตอัตโนมัติในโครงการ JAVA ... ฉันจะต้องบอกว่านี่ไม่ใช่ผู้ชนะเสมอ ... และอาจจะขมวดคิ้ว w / Maven 3+
beauXjames

@beauXjames .. มันไม่ได้ผลสำหรับฉัน แต่ฉันกำลังเผชิญปัญหาเดียวกัน วิธีแก้ไขปัญหานี้
Sathesh

1
ฉันมักจะเข้าไปในไดเรกทอรี repo ({ผู้ใช้} \. m2 \ ... ) ภายในเครื่องและลบสิ่งที่ฉันรู้ว่าเกี่ยวข้องกับโครงการของฉันจากนั้นให้กระบวนการติดตั้งออกไปและดึงข้อมูลพวกเขาอีกครั้งตั้งแต่ต้นดังนั้นจึงไม่มีข้อขัดแย้งของรุ่น
beauXjames

จากhelp: "เลือกช่องทำเครื่องหมายนี้หากคุณต้องการให้ IntelliJ IDEA อัปเดตสแนปชอตเมื่อซิงค์" กล่าวอีกนัยหนึ่งมันไม่ได้เป็นแบบอัตโนมัติ - คุณต้องSynchronize(ในเมนูคลิกขวาหรือCtrl-Alt-Y) แต่การเปิดใช้งานตัวเลือกนี้จะทำให้มันคว้าSNAPSHOTเวอร์ชั่นที่อัพเดต คำเตือน: อาจมีรายละเอียดปลีกย่อยอื่น ๆ เช่นImport Changes- นี่ดูเหมือนจะไม่สามารถทำซ้ำได้อย่างสมบูรณ์แบบสำหรับฉันจนถึงตอนนี้ บางทีมันอาจจะเป็นในจินตนาการของฉัน - สิ่งที่ดูเหมือนว่าจะทำงานได้เต็มเสมอreimportตามที่แนะนำในคำตอบอื่น ๆ
สูงศักดิ์

36

สำหรับ IntelliJ IDEA 14.0

โครงการ> [ชื่อโครงการของคุณ]> คลิกขวา> Maven> นำเข้าใหม่


17

หากการนำเข้าใหม่ไม่ทำงาน (เช่นไม่ลบการอ้างอิงรุ่นเก่าหลังจากการอัปเดต pom) มีโอกาสอีกครั้ง:

  • เปิดการตั้งค่าโครงการ (CTRL + SHIFT + ALT + S)
  • ในโมดูลลบ libs ทั้งหมดที่คุณต้องการนำเข้าซ้ำ (เช่นรายการซ้ำ)
  • ความคิดจะเตือนว่าบางส่วนยังคงใช้ยืนยัน
  • ใช้และเลือกตกลง
  • จากนั้นอิมพอร์ตโครงการ maven ทั้งหมด


9

เรียกใช้คำสั่งนี้ mvn -U clean install


3
แม้ว่านี่จะเป็นวิธีแก้ปัญหา แต่ก็จำเป็นต้องทำจาก CLI คำถามเกี่ยวกับการทำจากภายในความคิด
talonx

ใน IDE คุณสามารถดำเนินการเป้าหมาย maven และใช้คำสั่งด้านบนโดยไม่ต้องเปิด CLI หรือเทอร์มินัลของคุณ
Babajide Apata

2
นั่นเป็นการเอาชนะวัตถุประสงค์ของการบูรณาการ maven ในไอเดีย
talonx

1
เรากำลังพูดถึงตัวเลือก -U ซึ่งไม่ปรากฏในไอเดีย ตัวเลือก "นำเข้าซ้ำ" ดูเหมือนจะเป็น แต่ก็ไม่ใช่
talonx

1
ฉันเห็นว่าคุณกำลังหมายถึงการพิมพ์และดำเนินการเป้าหมาย maven ซึ่งในกรณีนี้เป็นไปได้ อย่างไรก็ตามฉันอ้างถึง -U ที่ไม่ได้อยู่ในเมนูในตัวด้านขวา ("Maven Projects")
talonx

3

ฉันมีปัญหาที่ IntelliJ ไม่สามารถรวบรวมคลาสได้โดยอ้างว่าการพึ่งพาระหว่างโปรเจ็กต์หายไป การนำเข้าโครงการอีกครั้งตามที่แนะนำในคำตอบของคำถามนี้ไม่ได้แก้ปัญหา ทางออกสำหรับฉันคือ:

  1. ลบโครงการทั้งหมด (แท็บโครงการ / คลิกขวาที่โฟลเดอร์ราก / maven / ลบโครงการ);
  2. ปิดเครื่องมือแก้ไข
  3. รวบรวมโครงการทั้งหมดด้วย maven บนบรรทัดคำสั่ง
  4. เปิดตัวแก้ไขในโครงการเดียวกัน
  5. เพิ่มโปรเจ็กต์ลงใน Maven อีกครั้ง (แท็บ Maven / เพิ่มโปรเจ็กต์ Maven (สีเขียว +) / เลือกรูทปอม);

คำเตือน: ในบางโครงการคุณอาจต้องเพิ่มหน่วยความจำสูงสุดสำหรับการนำเข้า maven (การตั้งค่า maven บนแท็บ maven / ตัวเลือกการนำเข้า / VM สำหรับผู้นำเข้า)



0

หากคุณกำลังใช้ช่วงเวอร์ชันสำหรับการอ้างอิงใด ๆ ตรวจสอบให้แน่ใจว่า IntelliJ ใช้ Maven 3 เพื่อนำเข้าโครงการ Settings > Maven > Importing > Use Maven3 to import projectคุณสามารถพบการตั้งค่านี้ใน: มิฉะนั้นคุณอาจพบว่ารุ่น SNAPSHOT นั้นนำเข้าไม่ถูกต้อง

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