zoukankan      html  css  js  c++  java
  • Go module学习笔记


    一 go module 常用命令

    模块维护:go mod command arguments
    创建模块:go mod init example.com/hello
    清除无用依赖: go mod tidy

    测试packages:go test [build/test flags] [packages]
    测试当前目录*_test.go:go test 运行当前文件夹下的_test.go文件

    列出packages或模块:
    go list [-f format] [-json] [-m] [list flags] [build flags] [packages]

    列出模块所有的依赖(包括间接依赖):go list -m all

    增加并安装依赖:
    go get [-d] [-t] [-u] [-v] [-insecure] [build flags] [packages]

    升级minor版本get get packages

    升级依赖module的主版本:
    import中加入语义主版本号,比如:import quoteV3 "rsc.io/quote/v3"

    二 发布go module

    语义版本:
    语义版本由vMAJOR.MINOR.PATCH构成,当新发布版本公共API不兼容已发布版本时,新增MAJOR主版本号;当新增函数等兼容已发布版本时,增加MINOR;不改变API和则依赖时,比如修复bug,增加PATCH。
    V0为初始不稳定版本,v1为第一个稳定版本。
    给本地分支打标, 默认标签是打在最新提交的commit上:git tag v0.1.0
    将本地分支标签推送到远端:git push origin v0.1.0

    三 发布v2及以上版本

    模块的V2及以上版本必须带有有不同的模块导入路径,路径带上major version。
    在模块下新建v2子目录,将模块下所有的*.go文件全部铐入v2目录,将go.mod拷入v2目录,并修改module名称。
    修改模块名称:
    go mod edit -module github.com/killianxu/gopher/v2 v2/go.mod

    将我们项目依赖的模块全改成v2版本:
    find . -type f -name '*.go' -exec sed -i -e 's,github.com/my/project,github.com/my/project/v2,g' {} ;
    find查找指定文件,.表示本目录及子目录,-type表示文件类型(f普通文件),-name表示文件名,-exec执行指令,-exec和{}结合表示匹配的所有文件[5]。
    sed是流编辑器,用于文本处理,sed读入文件行进缓冲区,处理完成输出到屏幕,然后处理下一行。
    命令用法:sed [options] 'command' file(s)
    -e可以在同一行里执行多条命令,-i直接更改原文件。command中s表示替换,g表示对所有行进行替换。
    git tag v2.0.0
    将本地分支标签推送到远端:git push origin v2.0.0

    参考文献

    [1] Using Go Modules.https://blog.golang.org/using-go-modules
    [2] Command go.https://golang.org/cmd/go/
    [3] Publishing Go Modules.https://blog.golang.org/publishing-go-modules
    [4] Go Modules: v2 and Beyond.https://blog.golang.org/v2-go-modules
    [5] find命令.https://man.linuxde.net/find
    [6] sed命令.https://man.linuxde.net/sed

  • 相关阅读:
    参数是指针,传递指针变量,最后函数总分配的内存丢了
    GoDaddy域名注册/空间购买优惠码
    Godaddy主机新建网站说明
    Godaddy主机购买图解教程
    Godaddy 如何添加独立IP到主机账户
    GoDaddy域名注册图解
    Godaddy windows主机添加域名,删除域名,添加子域名 操作说明
    ASP.net与PHP两大网站开发架构优势对比
    Godaddy如何导入导出MSSQL数据库
    什么是DSN文件
  • 原文地址:https://www.cnblogs.com/killianxu/p/12443833.html
Copyright © 2011-2022 走看看