Я використовував, 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шлях? Я просто не бачу причини, чому хтось захотів би такої поведінки. Що робити, якщо ви перемістите проект в інше місце (тобто зображення Докера), вам потрібно буде знову змінити всі шляхи? Я шукаю відповіді, чому це так складно.