初始化go.modgit
go mod init
整理依赖包github
go mod tidy
若是想缓存到vendor目录golang
go mod vendor
执行命令以后都会自动把依赖搞定.
可是, 若是咱们是本地开发的包, 尚未远程仓库的时候, 要怎么解决本地包依赖问题呢?sql
幸运的是, go module 提供了另一个方案, replace, 这个replace怎么使用的呢?
咱们先看一下一个最基本的mod文件缓存
module GoRoomDemo go 1.12 require ( github.com/gin-gonic/gin v1.3.0 github.com/gohouse/goroom v0.0.0-20190327052827-9ab674039336 github.com/golang/protobuf v1.3.1 // indirect github.com/gomodule/redigo v2.0.0+incompatible github.com/mattn/go-sqlite3 v1.10.0 github.com/stretchr/testify v1.3.0 // indirect golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53 // indirect )
这是一个简单的GoRoom
框架的依赖关系包, 若是我想使用本地的goroom
, 只须要使用replace便可框架
module GoRoomDemo go 1.12 require ( github.com/gin-gonic/gin v1.3.0 github.com/gohouse/goroom v0.0.0-20190327052827-9ab674039336 github.com/golang/protobuf v1.3.1 // indirect github.com/gomodule/redigo v2.0.0+incompatible github.com/mattn/go-sqlite3 v1.10.0 github.com/stretchr/testify v1.3.0 // indirect golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53 // indirect ) replace github.com/gohouse/goroom => /path/to/go/src/github.com/gohouse/goroom
这里的
path/to/go/src/github.com/gohouse/goroom
是本地的包路径
这样, 咱们就能够愉快的使用本地目录了ui