Đây là câu hỏi: Khi sử dụng Vagrant cho một dự án Java (hoặc bất kỳ dự án ngôn ngữ biên dịch nào cho vấn đề đó), bạn nên biên dịch trong VM hay trên máy chủ lưu trữ? Ngoài ra, bạn muốn IDE của mình và tất cả các công cụ phát triển của bạn cũng được chạy từ bên trong máy ảo hay trên máy chủ lưu trữ?
Có vẻ như chưa được xác định rõ ràng về cách thức hoạt động của Java IDE và quá trình biên dịch / triển khai với máy ảo Vagrant. Nói chung, ấn tượng của tôi là mã được chỉnh sửa trên máy chủ và chạy trên máy ảo, hoạt động tốt cho các ngôn ngữ không được biên dịch. Các câu trả lời khác trên Stackoverflow đã ngụ ý rằng Vagrant ít hữu ích hơn cho các ngôn ngữ đã biên dịch vì phải thực hiện thêm bước biên dịch, nhưng tôi vẫn muốn xem những gì có thể được thực hiện.
Một số điều tôi đã nghĩ qua:
Tại sao phải biên dịch trên VM
- nếu biên dịch trên máy chủ, java là một phần mềm nữa để cài đặt
- nếu biên dịch trên máy chủ, phiên bản java trên máy chủ phải được cập nhật theo cách thủ công trên máy ảo
- phiên bản java tương ứng trên máy chủ có thể không khả dụng (giả sử trên máy Mac)
Tại sao có IDE trên VM
- tích hợp chặt chẽ hơn giữa môi trường và IDE, có thể sử dụng phím tắt để chạy ứng dụng
- có thể kết nối trình gỡ lỗi cho các ứng dụng java mà không cần gỡ lỗi từ xa (chạy / gỡ lỗi một bước)
Tại sao phải biên dịch trên máy chủ
- thời gian biên dịch nhanh hơn
- muốn giữ cho VM càng gần với giao diện sản xuất càng tốt
Tại sao có IDE trên máy chủ
- quy ước của người lang thang để chỉnh sửa mã trên máy chủ và chạy nó trên máy ảo
- hiệu suất giao diện người dùng tốt hơn (chuyển tiếp X và VNC chậm)
Suy nghĩ của bạn là gì: tôi nên chạy IDE của mình từ bên trong máy ảo hay máy chủ lưu trữ? Tôi nên biên dịch từ bên trong máy ảo hay máy chủ lưu trữ?