0

我有 2 个可能相关的问题。

我有一个测试 monorepo 设置,有 2 个子目录(mod1mod2)。
每个模块都有一个文件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()
}

mod2/mod2_lib/t_lib.go

package mod2_lib

import "fmt"

func Run() {
    fmt.Println("RUNS")
}

第二个问题是,在这个 monorepo 中,我希望在顶级目录pyrust. 所以我想把我所有的 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.

4

1 回答 1

-1

问题是它是一个私人 github.com 回购。公开修复它!:) 现在必须弄清楚模块系统的身份验证。

于 2019-01-08T17:40:36.170 回答