У меня есть 2 возможные проблемы.
У меня есть тестовая установка monorepo с 2 подкаталогами (mod1
и mod2
).
Каждый из них имеет файл go.mod
, а каждый из модулей имеет один файл .go
с базовым кодом печати. в mod2
есть подкаталог mod2_lib
(который содержит один из этих простых .go
файлов с базовым печатным кодом), так как я читал, что модули Go в основном являются их собственными маленькими GOPATH
.
Я хотел бы вызвать функцию Run()
, которая в пакете mod2/mod2_lib
из mod1
, но все, что я получаю, это build github.com/account_name/test/mod1: cannot find module for path github.com/account_name/test/mod2/mod2_lib
.
вот файлы, которые я использую, чтобы понять это:
mod1 / t.go
package main
import (
"fmt"
"github.com/account_name/test/mod2/mod2_lib"
)
func main() {
fmt.Println("mod1")
mod2_lib.Run()
}
mod 2 / mod2_lib / t_lib.go
package mod2_lib
import "fmt"
func Run() {
fmt.Println("RUNS")
}
Вторая проблема заключается в том, что в этом монореполе я хотел бы иметь связанный код Python и Rust в директориях верхнего уровня py
и rust
. Поэтому я хотел бы поместить все свои пакеты Go в go/src
dir. Как другие люди могли бы импортировать этот путь go/src
в свой проект (возможно, все еще имея "github.com/account_name/test/mod2/mod2_lib"
в качестве пути импорта, а не "github.com/account_name/test/go/src/mod2/mod2_lib"
)?
Кто-нибудь может дать мне несколько советов по этим вопросам? Я хочу перейти к использованию модулей Golang и отказаться от GOPATH
.