我有2个可能相关的问题。
我有一个测试monorepo设置,带有2个子目录(mod1
和mod2
)。
每个模块都有一个go.mod
文件,每个模块都有一个带有基本打印代码的.go
文件。在mod2
中有一个子目录mod2_lib
(其中包含带有基本打印代码的简单.go
文件之一),因为我读到Go模块基本上是它们自己的小GOPATH
的。
Id希望从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()
}
mod2 / mod2_lib / t_lib.go
package mod2_lib
import "fmt"
func Run() {
fmt.Println("RUNS")
}
第二个问题是,在此monorepo中,我希望在顶级目录py
和rust
中具有相关的Python和Rust代码。因此,我想将我所有的Go软件包都放在go/src
目录中。其他人将如何将此go/src
路径导入他们的项目(可能仍以"github.com/account_name/test/mod2/mod2_lib"
作为导入路径,而不是"github.com/account_name/test/go/src/mod2/mod2_lib"
)?
有人可以给我一些关于这些问题的建议吗?我想转而使用Golang模块,而放弃GOPATH
。
答案 0 :(得分:-1)
问题在于这是一个私人github.com回购。公开修复它! :)现在必须弄清楚模块系统的身份验证。