Tôi đã sử dụng GOPATH
như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.go
làm việc trong binary1.go
hoặc binary2.go
v.v.
Ví dụ; Tôi muốn có thể import "package1"
và sau đó có thể chạy go build binary1.go
và 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 GOROOT
hoặ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.
.go
tệ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 import
cá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.