นี่คือคำถาม: เมื่อใช้ Vagrant สำหรับโปรเจ็กต์ Java (หรือโปรเจ็กต์ภาษาที่คอมไพล์สำหรับเรื่องนั้น) คุณควรคอมไพล์ใน VM หรือบนโฮสต์? นอกจากนี้คุณต้องการให้ IDE และเครื่องมือการพัฒนาทั้งหมดของคุณทำงานจากภายใน VM ด้วยหรือบนโฮสต์?
ดูเหมือนว่าจะไม่ได้กำหนดไว้อย่างชัดเจนว่า Java IDE และกระบวนการคอมไพล์ / ปรับใช้ทำงานร่วมกับ Vagrant VM อย่างไร โดยทั่วไปความประทับใจของฉันคือโค้ดถูกแก้ไขบนโฮสต์และทำงานบน VM ซึ่งใช้งานได้ดีสำหรับภาษาที่ไม่ได้คอมไพล์ คำตอบอื่น ๆ ใน Stackoverflowบอกเป็นนัยว่า Vagrant มีประโยชน์น้อยกว่าสำหรับภาษาที่คอมไพล์เนื่องจากมีขั้นตอนการคอมไพล์เพิ่มเติม แต่ฉันยังต้องการดูสิ่งที่สามารถทำได้
บางสิ่งที่ฉันเคยคิดไว้แล้ว:
ทำไมต้องคอมไพล์บน VM
- หากคอมไพล์บนโฮสต์ java เป็นซอฟต์แวร์อีกหนึ่งชิ้นที่จะติดตั้ง
- หากคอมไพล์บนโฮสต์เวอร์ชัน java บนโฮสต์จะต้องได้รับการอัปเดตด้วยตัวเองบน VM
- เวอร์ชันจาวาที่เกี่ยวข้องบนโฮสต์อาจไม่พร้อมใช้งาน (เช่นบน Mac)
เหตุใดจึงมี IDE บน VM
- บูรณาการที่เข้มงวดมากขึ้นระหว่างสภาพแวดล้อมและ IDE สามารถใช้ทางลัดเพื่อเรียกใช้แอปพลิเคชัน
- สามารถเชื่อมต่อดีบักเกอร์สำหรับแอปพลิเคชัน java โดยไม่ต้องมีการดีบักระยะไกล
ทำไมต้องคอมไพล์บนโฮสต์
- เวลาคอมไพล์เร็วขึ้น
- ต้องการให้ VM ใกล้เคียงกับการผลิตมากที่สุด
ทำไมต้องมี IDE บนโฮสต์
- มันเป็นแบบแผนของคนเร่ร่อนในการแก้ไขโค้ดบนโฮสต์และเรียกใช้บน VM
- ประสิทธิภาพ UI ที่ดีขึ้น (การส่งต่อ X และ VNC ช้า)
คุณคิดอย่างไร: ฉันควรเรียกใช้ IDE จากภายใน VM หรือโฮสต์ ฉันควรคอมไพล์จากภายใน VM หรือโฮสต์?