如何在go.mod文件中配置继承的包

如何在go.mod文件中配置继承的包,go,Go,我的项目有三个模块,文件目录是(/main.go)(/b/b.go)(/a/a.go) <-- /main.go-->: package main import ( "b.com/b" ) ... <-- /go.mod--> module main go 1.16 require b.com/b v0.0.0 replace b.com/b => ./b <-- /b/go.mod--> module main g

我的项目有三个模块,文件目录是(/main.go)(/b/b.go)(/a/a.go)

<-- /main.go-->:
package main    
import (
    "b.com/b"
)
...
<-- /go.mod-->
module main
go 1.16
require b.com/b v0.0.0
replace b.com/b => ./b

<-- /b/go.mod-->
module main
go 1.16
require a.com/a v0.0.0
replace a.com/a => ../a

它将在(/main.go)中显示“b.com/b”无法导入。如果不是,程序正常,这里出了什么问题?

首先,使您的模块处于顶层:

go mod init stackoverflow.com/user/repo
然后做
pack/pack.go

package pack

const Pack = 1
package main
import "stackoverflow.com/user/repo/pack"

func main() {
   println(pack.Pack)
}
然后使
main.go

package pack

const Pack = 1
package main
import "stackoverflow.com/user/repo/pack"

func main() {
   println(pack.Pack)
}
然后构建:

go build

1.没有“继承的包”。2.“我的项目有三个模块”以及大量的replace指令暗示了模块的滥用。你确定你需要三个模块吗?3.文件夹b中的模块声明其名称为“main”,但您导入的是“b.com/b”。你真的应该直说你的名字。我建议将所有内容放在一个模块下,使用该模块的描述性名称,如“my.Playerd/firstexample”。如果其中一个父文件夹已经有go.mod,则不要创建go.mod。将它们放在同一级别或低于single go.mod。(例如,您的根文件夹将是./cmd/main.go./a/a.go./b/b.go./go.mod./go.sum)