当前位置 博文首页 > go module使用本地包的方法示例

    go module使用本地包的方法示例

    作者:fizz 时间:2021-07-06 18:41

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

    这样, 我们就可以愉快的使用本地目录了

    jsjbwy
    下一篇:没有了