У меня есть несколько Go проектов (и все они также Go модулей ), все в папке. Все они являются серверами HTTP и обмениваются вызовами REST, поэтому мне нужно, чтобы все они были запущены и запущены одновременно.
Итак, для локального тестирования я подумал, что было бы разумно вместо этого запускать все из родительского перемещения всех каталогов проекта root и запуска go run main.go
на нескольких терминалах.
container_dir/
├── prj1/
│ ├── go.mod
│ ├── main.go
│ └── ...
├── prj2/
│ ├── go.mod
│ ├── main.go
│ └── ...
└── ...
Вот некоторые команды, которые я пробовал, и сообщения об ошибках для каждого времени:
container_dir $ go run ./*/*.go
##ERROR: named files must all be in one directory; have ./prj1/ and ./prj2/
container_dir $ go run *.go
##ERROR: stat *.go: no such file or directory
container_dir $ go run ./prj1 ./prj2/
##ERROR: cannot find package "github.com/jackc/pgx/v4" in any of:
/usr/local/go/src/github.com/jackc/pgx/v4 (from $GOROOT)
/home/user/go/src/github.com/jackc/pgx/v4 (from $GOPATH)
cannot find package ...
Итак, я могу дать окончательный ответ на вопрос: Как запустить несколько go модулей в каталогах одного уровня, если они имеют какие-либо сторонние зависимости и т. Д. c.?
PS: По возможности с модулями Go предложение container_dir
для моих проектов находится в произвольном месте, и я не ожидаю $GOPATH
релевантности.
Go версия: 1.13. 6