我正在尝试了解如何使用 go1.11 模块组织我的 golang 项目。我尝试了几种选择,但都没有用。
我在应用程序文件夹下的主包中有一些代码和主包使用的本地包。
$GOPATH
+ src
+ application/
+ main/
+ main.go
+ otherFileUnderMainPackage.go
+ aLocalPackage/
+ someCode.go
+ someCode_test.go
+ someMoreCode.go
+ someMoreCode_test.go
主包中的文件,导入../aLocalPackage
。当我通过 go build main/*.go
编译时,它正在运行。
然后,我运行 go mod init application: V.0.9.9
并获得了 go.mod 文件,但构建总是失败。我总是收到关于找不到本地包的错误:build application:V0.9.9/main: cannot find module for path _/.../src/application/aLocalPackage
。我还尝试将本地包放在 src/下,将其放在 main/下等。但是这些方法都不适合我。
模块和本地包的使用方法是什么?
谢谢。
最佳答案
模块模式不支持相对导入路径。您将需要更新您的 import
语句以使用完整(绝对)导入路径。
您还应该选择一个不同于application
的模块名称。您的模块路径通常应以您控制的 URL 前缀开头——您自己的域名或唯一路径,例如 github.com/$USER/$REPO
。
关于golang 模块和本地包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52296086/