go module的使用非常简单
-
初始化go.mod
go mod init
-
整理依赖包
go mod tidy
-
如果想缓存到vendor目录
go mod vendor
执行命令之后都会自动把依赖搞定.
但是, 如果我们是本地开发的包, 还没有远程仓库的时候, 要怎么解决本地包依赖问题呢?
使用replace将远程包替换为本地包服务
幸运的是, 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
是本地的包路径
这样, 我们就可以愉快的使用本地目录了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。