Как правильно сделать декомпозицию в golang?
Как без привязки к git сделать декомпозицию golang проекта и чтобы он мог находиться вне $GOPATH. К примеру:
my_custom_directory
└── src
├── main.go
├── pkg_1
│ ├── file_1.go
│ └── file_2.go
└── pkg_2
├── file_1.go
├── file_2.go
└── file_3.go
Где src/pkg_1/file_1 содержит импорт какого-либо внешнего модуля.
Как правильно поставить imports во всех файлах, если относительные пути нельзя использовать в новой версии golang? Может быть как-то сделать packages модулями?
Хотелось бы сделать все это без привязки к git-репозиторию в каком-либо github/gitlab а локально на компьютерею.
Возможно это все звучит как типичная просьба заказчика, но неужели в golang все жестко привязано к $GOPATH и git?
Ответы (1 шт):
Автор решения: Владимир Клыков
→ Ссылка
go.mod:
module Test1
go 1.17
require (
SomeProjectName/ModuleName v1.0.0
)
replace SomeProjectName/ModuleName => ../ModuleName
upd. исправил пример.