我的源目录布局像
mywork/libA
mywork/libA/liba.go
mywork/libA/go.mod
mywork/progB
mywork/progB/go.mod
mywork/progB/progb.go
go mod init example.com/mywork/liba
. go mod init example.com/mywork/progb
. libA/liba.go
package liba
func Hi() string { return "hi" }
libA/go.mod
module example.com/mywork/liba
go 1.13
progB/progb.go
package main
import "example.com/mywork/liba"
func main() { println("progb:", liba.Hi()) }
progB/go.mod
module example.com/mywork/progb
go 1.13
go build
在 libA
目录是可行的。但是 go build
失败 progB
并显示build example.com/mywork/progb: cannot load example.com/mywork/liba: cannot find module providing package example.com/mywork/liba
如何纠正它?
最佳答案
progB/go.mod 应该在 https://github.com/golang/go/wiki/Modules#can-i-work-entirely-outside-of-vcs-on-my-local-filesystem 中添加 require 和 replace 语句
module example.com/mywork/progb
require example.com/mywork/liba v0.0.0
replace example.com/mywork/liba => ../libA
go 1.13
关于go - 如何通过 'go mod' 分隔不同目录中的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60348123/