使用 gitee 托管你的 go 模块
前言
实话实说, github 作为这个球上顶级的代码托管平台, 公司/企业/开发者的认可和参与度是非常高的.
但是因为某些原因 特色墙, 国内使用 github 的体验不是非常好
- 速度慢
- 不靠谱同学的贸易政策
- 英文不是非常友好 比如我就是英文渣渣
- ...
而 go 的模块系统高度使用了 github, 以及很多非常有用的包也托管在 github,
随之而来的问题是, 国内, 使用 github 有的问题, 使用 go 模块系统全部一起中招了.
为此, 我们来试试如何把自己的 go 模块托管在 gitee 来更方便的使用.
相比之下使用 gitee 的优势:
- 速度快的多 网速就是生命
- 不怕不靠谱同学
- 母语贴心
- 可能模块少点 这是劣势, 需要你我他的努力
- ...
创建你的 go 模块
按照我的习惯, 我在我的电脑目录 E:\goprojects\src\gitee.com\taadis 目录下新建了一个 uuid 模块项目
└─uuid
.gitignore
doc.go
go.mod # 模块配置文件, 主要的就是这个
go.sum # 模块依赖计算, 通常请 git 忽略掉
README.md
uuid.go
uuid_test.go
我们来看看 go.mod 文件
module gitee.com/taadis/uuid
模块声明以 "路径/用户/模块" 这样的形式声明
就这么简单, 模块声明完成后, 本地测试通过, 然后 git push 到 gitee
发布你的 go 模块
一个模块随着时间和业务累积会有越来越多的版本, 那么怎么发布 go 的模块以及迭代版本呢
首先在 gitee 创建一个新仓库

同步本地仓库到远程仓库

需要发布版本的时候, 通过标签来实现
直接 git tag v0.0.1, 然后 git push origin v0.0.1
更多的版本号累积即可
直接 git tag v0.0.2, 然后 git push origin v0.0.2
使用你的 go 模块
来个简单的例子, 新建一个叫做 uuidtest 的项目, go get gitee.com/taadis/uuid v0.0.1 下载指定版本, 不指定版本号时会下载默认下载最新版本, 并记录到 go.mod 文件中
module uuidtest
require gitee.com/taadis/uuid v0.0.1
然后就可以欢乐的使用了
// main.go
package main
import (
"fmt"
"gitee.com/taadis/uuid"
)
func main() {
id := uuid.New()
fmt.Println(id)
}
GoDoc
GoDoc 是 go 提供的一个在线文档服务, 不需要你做任何多余的事情
直接在浏览器访问 https://godoc.org/模块名称
比如 https://godoc.org/gitee.com/taadis/uuid 即可看到你的 go 模块相关的源码中的文档

使用 gitee 托管你的 go 模块的更多相关文章
- Java 9 揭秘(10. 模块API)
Tips 做一个终身学习的人. 在本章节中,主要介绍以下内容: 什么是模块 API 如何在程序中表示模块和模块描述 如何读取程序中的模块描述 如何表示模块的版本 如何使用Module和ModuleDe ...
- 在IIS上部署(托管).NET Core站点
部署教程 操作系统要求 Windows 7 或更高版本 Windows Server 2008 R2 或更高版本 依赖的组件 Runtime & Hosting Bundle image. ...
- Use Hexo to Build My Gitee Blog
之前有自己建站托管自己的博客系统, 后来因为流量实在太少, 服务器又要每个月出钱, 然后就把她关了, 然是拥有自己的网站的心一直没有退去啊, 然后之前有接触到别人用GitHub托管静态网页的玩法, ...
- Spark Deploy 模块
Spark Scheduler 模块的文章中,介绍到 Spark 将底层的资源管理和上层的任务调度分离开来,一般而言,底层的资源管理会使用第三方的平台,如 YARN 和 Mesos.为了方便用户测试和 ...
- ThinkAdmin for PHP后台管理系统
ThinkAdmin for PHP后台管理系统 ThinkAdmin 是一个基于 Thinkphp 5.1.x 开发的后台管理系统,集成后台系统常用功能.基于 ThinkPHP 5.1 基础开发平台 ...
- 开源框架TLog核心原理架构解析
前言 最近在做TLog 1.2.5版本的迭代,许多小伙伴之前也表示说很想参与开源项目的贡献.为了让项目更好更快速的迭代新特性以及本着发扬开源精神互相学习交流,很有幸招募到了很多小伙伴与我一起前行. 为 ...
- Casdoor + OAuth 实现单点登录 SSO
简介 Casdoor 是一个基于 OAuth 2.0 / OIDC 的中心化的单点登录(SSO)身份验证平台,简单来说,就是 Casdoor 可以帮你解决用户管理的难题,你无需开发用户登录.注册等与用 ...
- 万字+28张图带你探秘小而美的规则引擎框架LiteFlow
大家好,今天给大家介绍一款轻量.快速.稳定可编排的组件式规则引擎框架LiteFlow. 一.LiteFlow的介绍 LiteFlow官方网站和代码仓库地址 官方网站:https://yomahub.c ...
- Java项目有可能做到所有的代码逻辑均可热部署吗?
前言 首先我们明确下什么叫做热部署,热部署是在不重启java虚拟机的前提下,自动更新class的行为,从而更新整个运行时的逻辑. 在java开发领域,热部署一直是一个难以解决的问题,java虚拟机理论 ...
- 转载MSDN 在ASP.NET 中执行 URL 重写
转载文章原网址 http://msdn.microsoft.com/zh-cn/library/ms972974.aspx 摘要:介绍如何使用 Microsoft ASP.NET 执行动态 URL 重 ...
随机推荐
- WPF 资源定义空字符串或者空格问题
xmlns:sys="clr-namespace:System;assembly=mscorlib" WPF在XAML的资源中定义空字符串String.Empty 代码如下: &l ...
- Activiti、Flowable和Camunda选型和对比
https://camunda.com/https://www.jianshu.com/p/5942c4ee513chttps://zhuanlan.zhihu.com/p/484107368http ...
- biancheng-Django(python)
http://c.biancheng.net/django/ Django MTV和MVC的区别 1. MVC设计模式 我们先对 MVC 设计模式进行介绍,它是 Web 设计模式的经典之作,MTV 模 ...
- 9. SpringCloud Alibaba Sentinel 流量控制、熔断降级、系统负载,热点规则的部署设置讲解
9. SpringCloud Alibaba Sentinel 流量控制.熔断降级.系统负载,热点规则的部署设置讲解 @ 目录 9. SpringCloud Alibaba Sentinel 流量控制 ...
- MySQL中联合主键的 in 查询
就一句话: SELECT * from Projects WHERE (Prj,SubID) in (SELECT Prj,SubID FROM SP where stage='设计' and 负责人 ...
- .Net 配置绑定 IOptions
准备 首先准备下appsettins.json以及目标类 appsettins.json "StudentSettings": { "Id": 1023 ...
- 割以咏志:Stoer–Wagner 算法求解全局最小割
全局最小割问题(Global Min-Cut Problem)是图论中的一个经典问题,旨在通过切割图中的边来划分图的顶点集合.具体来说,给定一个加权无向图 $ G = (V, E) $,图中每条边 $ ...
- 【H2O系列】包括人形机器人WBC相关论文小结
1. 前言 这篇博客主要用于记录包括人形机器人WBC或locomotion相关论文小结. 一方面便于日后自己的温故学习,另一方面也便于大家的学习和交流. 如有不对之处,欢迎评论区指出错误,你我共同进步 ...
- Linux命令行连接蓝牙设备
Linux命令行连接蓝牙设备 查看Bluetooth设备: hciconfig 启动一个Bluetooth设备,例如:hci0: hciconfig hci0 up 相关指令 查看特定的Bluetoo ...
- nginx 强制https
nginx 强制https 通常有如下两种方法强制https推荐第二种,第二种更高效1.使用nginx的rewrite方法 server { listen 80; server_name xxx. ...