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
Go module学习笔记的更多相关文章
- Requests:Python HTTP Module学习笔记(一)(转)
Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...
- Requests:Python HTTP Module学习笔记(二)(转)
在上一篇日志中对Requests做了一个整体的介绍,接来下再介绍一些高级的用法,主要资料还是翻译自官网的文档,如有错漏,欢迎指正. 参考资料:http://docs.python-requests.o ...
- python学习笔记之module && package
个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...
- ES6学习笔记<五> Module的操作——import、export、as
import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...
- angular学习笔记(十五)-module里的'服务'
本篇介绍angular中的模块:module 在笔记(二)http://www.cnblogs.com/liulangmao/p/3711047.html里已经讲到过模块,这篇主要讲模块的 '服务' ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Sass学习笔记之入门篇
Sass又名SCSS,是CSS预处理器之一,,它能用来清晰地.结构化地描述文件样式,有着比普通 CSS 更加强大的功能. Sass 能够提供更简洁.更优雅的语法,同时提供多种功能来创建可维护和管理的样 ...
- react-native学习笔记--史上最详细Windows版本搭建安装React Native环境配置
参考:http://www.lcode.org/react-native/ React native中文网:http://reactnative.cn/docs/0.23/android-setup. ...
- linux驱动开发之块设备学习笔记
我的博客主要用来存放我的学习笔记,如有侵权,请与我练习,我会立刻删除.学习参考:http://www.cnblogs.com/yuanfang/archive/2010/12/24/1916231.h ...
随机推荐
- 谁能率先挖掘出5G金矿?
现在,消费者已经习惯4G的存在,它好像另外的一个太阳,点亮了夜生活,也丰富了白天的生活:随时随地的直播.视频通话.移动支付.嘀嘀打车等等,这些都因4G网络和智能手机而快速发展,帮助消费者清理碎片时间之 ...
- [LC] 167. Two Sum II - Input array is sorted
Given an array of integers that is already sorted in ascending order, find two numbers such that the ...
- centos 中文乱码解决办法
缘由:本人在虚拟机中安装centos 5.3,起初安装时选择了english,后来使用的过程中发现打开网页,会出现中文乱码,无法正常显示.当然,本地文件中的中文更是无法显示. 若是将系统语言langu ...
- C语言占位符(待完善)
%c 读入一个字符 %s 读入一个字符串,遇到空格制表符或者换行符时结束. %d 读入一个十进制整数 %x或者%X 读入一个十六进制整数(读出时,%x:小写,%X:大写) %o 读入一个八进制 ...
- 利用卷积神经网络实现MNIST手写数据识别
代码: import torch import torch.nn as nn import torch.utils.data as Data import torchvision # 数据库模块 im ...
- resume|issue|transmit|sake|obliged|beyond her wildest dreams|echo|transmission|immense|consistent |convey to| boasted|satisfaction|rub|enrol|demonize
If an activity resumes, or if you resume it, it startsagain after a pause. (中断后)继续,重新开始 Normal servi ...
- Nginx笔记总结十二:nginx版本号隐藏
vim nginx.conf http { server_tokens off;} php-fpm fastcgi.conf或fcgi.conf fastcgi_param SERVER_SOFTWA ...
- mode|平均数|方差|标准差|变异系数|四分位数|几何平均数|异众比率|偏态|峰态
应用统计学 数据的概括性度量 集中趋势 Mode众数是唯一描述无序类别数据,由图可知众数便是图形中的峰. 对于类别变量,众数就是某一种类别. 中位数和平均数都可能不是样本中的值. 中位数不受极值影响, ...
- 关于apache的几个常见问题
一.安装apache的时候总是不成功,提示:failed to open the winnt service manager 原因:软件安装时与windows7的"用户账户控制"( ...
- 《JavaScript算法》常见排序算法思路与代码实现
冒泡排序 通过相邻元素的比较和交换,使得每一趟循环都能找到未有序数组的最大值或最小值. 最好:O(n),只需要冒泡一次数组就有序了. 最坏: O(n²) 平均: O(n²) *单项冒泡 functio ...