在 Go Modules 模式下不支持相对导入路径。Go Modules 要求使用绝对导入路径来导入包,相对导入路径是不被允许的。
Go Modules(模块)使用go.mod
文件是管理项目的依赖关系和版本控制。
go.mod
文件包含以下信息:
- 模块路径:第一行指定了模块的路径,即项目在代码仓库中的唯一标识符。例如:
module github.com/your-username/your-project
。 - 依赖列表:
go.mod
文件中列出了项目的直接依赖项及其版本。每个依赖项由其模块路径和版本号组成。例如:require github.com/some-package v1.2.3
。 - 替代品:在某些情况下,您可能需要使用替代品来代替某个依赖项。
go.mod
文件中的replace
部分允许您指定替代品的路径和版本。例如:replace github.com/some-package => ../local/some-package
。 - 状态和版本信息:
go.mod
文件还包含有关当前模块的状态信息,例如最后一次修改的时间戳以及使用的 Go 版本。
通过编辑和更新 go.mod
文件,可以添加、更新或删除依赖项,指定依赖项的版本,并管理项目的模块化开发。
如果没有go.mod文件,可以通过命令
go mod init 项目标识符
其中的项目标识符即是自定义的项目名。导入项目中的包时就以 项目标识符/文件夹/包 来导入。
例如在文件结构
myproject/
├── main.go
└── utils/
└── helper.go
在main.go中想使用隶属于包utils(在helper'.go文件中指定隶属于包的名字为utils)下helper.go中的开放函数、结构体等,可以使用如下代码导入
import "项目标识符/utils"