我试图了解如何使用go1.11模块来组织我的golang项目。我尝试了几种选择,但没有一个起作用。
我在主程序包和应用程序文件夹中有一些代码,以及主程序包使用的本地程序包。
$GOPATH
+ src
+ application/
+ main/
+ main.go
+ otherFileUnderMainPackage.go
+ aLocalPackage/
+ someCode.go
+ someCode_test.go
+ someMoreCode.go
+ someMoreCode_test.go
Run Code Online (Sandbox Code Playgroud)
主包中的文件import ../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 前缀 \xe2\x80\x94 开头,可以是您自己的域名,也可以是唯一的路径,例如github.com/$USER/$REPO.