首页 > 解决方案 > golang 模块和本地包

问题描述

我试图了解如何使用 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/ 等下,但这些方法都不适合我。

模块和本地包的使用方法是什么?

谢谢。

标签: gomodule

解决方案


模块模式不支持相对导入路径。您将需要更新您的import语句以使用完整(绝对)导入路径。

您还应该选择除application. 您的模块路径通常应以您控制的 URL 前缀开头 - 您自己的域名或唯一路径,例如github.com/$USER/$REPO.


推荐阅读