go module使用本地包

go module的使用很是简单

  1. 初始化go.modgit

    go mod init
  2. 整理依赖包github

    go mod tidy
  3. 若是想缓存到vendor目录golang

    go mod vendor

执行命令以后都会自动把依赖搞定.
可是, 若是咱们是本地开发的包, 尚未远程仓库的时候, 要怎么解决本地包依赖问题呢?sql

使用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 是本地的包路径

这样, 咱们就能够愉快的使用本地目录了ui

相关文章
相关标签/搜索