golang 模块和本地包

标签 go module

我正在尝试了解如何使用 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/

相关文章:

linux - MODULE_DESCRIPTION 作为运行时生成的字符串

go - JSON 解码后自动创建计算字段

docker - Go 1.14 模块构建命令忽略 Docker 中的 vendor 目录

Golang foreach 差异

去眼镜蛇 : space separated values in StringArray flags

python - 做出开发网络抓取模块的Python式决定

debugging - 如何调试magento应用程序

json - 如何以 Sendgrid API 接受的格式将 html 嵌入到 json 中?

module - 我如何使 Rust 项在 crate 内公开,但在 crate 外私有(private)?

python - 在 python 3 中打开浏览器页面并每隔 n 小时截取一次屏幕截图