在 Go 语言 1.13 版本之后,go mod 已成包管理最佳实践。但是很多讲包管理的文章讲了太多 Go 包管理的历史,不是我想要的,我在这里只讲最佳实践要怎么做。
新项目
新建一个项目做示范
mkdir app
cd app
在项目目录下初始化 go mod
go mod init app
app 就是这个项目的名称,import 时会用到。完成后目录下会多了
go.mod
和
go.sum
,表明这已经是个 go mod 项目了。
新建 hello 模块,需要在 hello 目录下新建
hello.go
文件
// app/hello/hello.go
package hello
func Say() string {
return "hello"
}
新建
main.go
文件,导入 hello 模块(以 app 开头)
// app/main.go
package main
import (
"fmt"
"app/hello"
)
func main() {
a := hello.Say()
fmt.Println(a)
}
go run 自然会处理好依赖关系。
go run main.go
改造旧项目
过程非常简单,
先在项目初始化 go mod init xxx,
然后把导入的以
./
开头的相对路径改成以 xxx 为开头的绝对路径,
导入 github 上的框架的路径不用改,就和原来一样用 url 路径就行。