调研¶
Go 项目是怎样构建的?¶
Go 官方文档 有这样一句话:
Go程序的编译应当无需配置,或者除必要的导入语句外,不让开发者再做额外的事情。
看起来 go build
是个通用的编译命令。
不过看 Kubernetes 似乎是用 bazel 来构建的?
怎样构建 TiDB?¶
先 clone (git clone 时会特别慢)
运行
go build tidb-server/main.go
会报错,未安装依赖?go.mod 文件是个啥?
参考文档 https://github.com/golang/go/wiki/Modules#quick-start , 再参考 TiDB 项目 makefile 可知,应该打开 GO111MODULE 特性。
使用
GO111MODULE=on go build tidb-server/main.go