Я використовував, GOPATH
але для цього поточного питання, з яким я стикаюся, це не допомагає. Я хочу мати можливість створювати пакети, специфічні для проекту:
myproject/
├── binary1.go
├── binary2.go
├── package1.go
└── package2.go
Я спробував кілька способів, але як мені домогтися package1.go
роботи в тому binary1.go
чи binary2.go
іншому?
Наприклад; Я хочу бути в змозі, import "package1"
а потім бути в змозі запустити, go build binary1.go
і все працює нормально, не викидаючи помилку, яку пакет не можна знайти на GOROOT
або GOPATH
. Причина, чому мені потрібен такий функціонал, - це для масштабних проектів; Мені не хочеться посилатися на кілька інших пакетів або зберігати їх в одному великому файлі.
.go
файли в одному каталозі є частиною одного пакету, і вам не потрібно import
файли в одному пакеті (тобто, в одному каталозі). Ви згадали про роботу поза GOPATH, що є однією з можливостей нової системи модулів Go. Ця відповідь охоплює структуру модулів, імпорт локальних пакетів, упорядкування пакетів в модулі, чи є декілька модулів в одному сховищі тощо.
git/repo/to/my/project
шлях? Я просто не бачу причини, чому хтось захотів би такої поведінки. Що робити, якщо ви перемістите проект в інше місце (тобто зображення Докера), вам потрібно буде знову змінити всі шляхи? Я шукаю відповіді, чому це так складно.