Tôi đã sử dụng GOPATHnhưng đối với vấn đề hiện tại này, tôi không phải đối mặt với nó. Tôi muốn có thể tạo các gói dành riêng cho một dự án:
myproject/
├── binary1.go
├── binary2.go
├── package1.go
└── package2.go
Tôi đã thử nhiều cách nhưng làm thế nào để tôi package1.golàm việc trong binary1.gohoặc binary2.gov.v.
Ví dụ; Tôi muốn có thể import "package1"và sau đó có thể chạy go build binary1.govà mọi thứ hoạt động tốt mà không bị lỗi mà gói không thể được tìm thấy trên GOROOThoặc GOPATH. Lý do tại sao tôi cần loại chức năng này là cho các dự án quy mô lớn; Tôi không muốn phải tham khảo nhiều gói khác hoặc giữ chúng trong một tệp lớn.
.gotệp trong một thư mục là một phần của cùng một gói và bạn không cần phải gửi importcác tệp trong cùng một gói (nghĩa là cùng một thư mục). Bạn đã đề cập đến việc làm việc bên ngoài GOPATH, một trong những khả năng của hệ thống mô-đun Go mới. Đây câu trả lời bìa mô-đun cấu trúc, import các gói địa phương, sắp xếp các gói trong một mô-đun, có hoặc không có nhiều module trong kho lưu trữ duy nhất, vv
git/repo/to/my/projectđường dẫn? Tôi chỉ không thấy lý do tại sao bất cứ ai cũng muốn hành vi này. Điều gì sẽ xảy ra nếu bạn di chuyển dự án của mình đến một vị trí khác (ví dụ hình ảnh Docker), bạn cần thay đổi lại tất cả các đường dẫn? Tôi đang tìm kiếm câu trả lời tại sao điều này rất phức tạp.