美文网首页
go Module管理

go Module管理

作者: 岛在深海处 | 来源:发表于2019-04-04 15:45 被阅读0次
    一、创建一个Module

    1、新建模块文件夹(它的目录要在 GOPATH 之外,因为默认情况下,GOPATH 里面是禁用 modules 支持的)

    $ mkdir testmod
    $ cd testmod
    

    2、现在还只是一个文件夹,如果要变成module,就需要初始化(上传到github对外给他人使用的话,需要使用此默认格式:github.com/github昵称/module名)

    $ go mod init github.com/chenycu/testmod
    
    1. 初始化git项目,并在github上新建repositories,本地仓库添加远程地址
    git init
    git add *
    git commit -m "first commit"
    git remote add origin https://github.com/chenycu/testmod.git
    git push -u origin master
    

    现在任何想用这个包的人都可以通过go get命令获取,在自己的module目录下执行如下命令

    go get github.com/chenycu/testmod
    

    获取到的Module源码在GOPATH/pkg/mod/目录下

    二、发布版本控制

    版本号格式为v主要版本.次要版本.修订版本 例如:v1.0.0
    设置版本号我们使用git tag命令
    考虑到兼容性,module的每一个主要版本我们最好新建一个分支来存放

    $ git checkout -b v1
    $ git push -u origin v1
    $ git tag v1.0.0
    $ git push --tags
    

    这样我们在master分支中修改代码不会影响到主要版本,master中的问题修改完毕后,合并到v1分支,设置tag为v1.0.1重新push到v1远程分支后生效。

    如果需要更新主要版本,最好的做法是,再新建一个分支v2,设置tag为v2.0.0提交。

    三、更新Module

    我们可以在自己的Module目录下 使用go get 来更新 module:

    • 运行 go get -u将会升级到最新的次要版本或者修订版本(比如说,将会从 1.0.0 版本,升级到——举个例子——1.0.1 版本,或者 1.1.0 版本,如果 1.1.0 版本存在的话)
    • 运行 go get -u=patch 将会升级到最新的修订版本(比如说,将会升级到 1.0.1 版本,但不会升级到 1.1.0 版本)
    • 运行 go get package@version 将会升级到指定的版本号(比如说,github.com/chenycu/testmod@v1.0.1
    四、下载Module

    由于被墙的关系,下载module比较麻烦,但是go 1.12后有一个环境变量GOPROXY,我们可以直接在module目录下执行如下命令设置GOPROXY

    set GOPROXY=https://goproxy.io

    设完就可以下载被墙的包了。

    相关文章

      网友评论

          本文标题:go Module管理

          本文链接:https://www.haomeiwen.com/subject/grafiqtx.html