前言

实话实说, 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 模块的更多相关文章

  1. Java 9 揭秘(10. 模块API)

    Tips 做一个终身学习的人. 在本章节中,主要介绍以下内容: 什么是模块 API 如何在程序中表示模块和模块描述 如何读取程序中的模块描述 如何表示模块的版本 如何使用Module和ModuleDe ...

  2. 在IIS上部署(托管).NET Core站点

    部署教程 操作系统要求 Windows 7 或更高版本 Windows Server 2008 R2 或更高版本 依赖的组件 Runtime & Hosting Bundle   image. ...

  3. Use Hexo to Build My Gitee Blog

      之前有自己建站托管自己的博客系统, 后来因为流量实在太少, 服务器又要每个月出钱, 然后就把她关了, 然是拥有自己的网站的心一直没有退去啊, 然后之前有接触到别人用GitHub托管静态网页的玩法, ...

  4. Spark Deploy 模块

    Spark Scheduler 模块的文章中,介绍到 Spark 将底层的资源管理和上层的任务调度分离开来,一般而言,底层的资源管理会使用第三方的平台,如 YARN 和 Mesos.为了方便用户测试和 ...

  5. ThinkAdmin for PHP后台管理系统

    ThinkAdmin for PHP后台管理系统 ThinkAdmin 是一个基于 Thinkphp 5.1.x 开发的后台管理系统,集成后台系统常用功能.基于 ThinkPHP 5.1 基础开发平台 ...

  6. 开源框架TLog核心原理架构解析

    前言 最近在做TLog 1.2.5版本的迭代,许多小伙伴之前也表示说很想参与开源项目的贡献.为了让项目更好更快速的迭代新特性以及本着发扬开源精神互相学习交流,很有幸招募到了很多小伙伴与我一起前行. 为 ...

  7. Casdoor + OAuth 实现单点登录 SSO

    简介 Casdoor 是一个基于 OAuth 2.0 / OIDC 的中心化的单点登录(SSO)身份验证平台,简单来说,就是 Casdoor 可以帮你解决用户管理的难题,你无需开发用户登录.注册等与用 ...

  8. 万字+28张图带你探秘小而美的规则引擎框架LiteFlow

    大家好,今天给大家介绍一款轻量.快速.稳定可编排的组件式规则引擎框架LiteFlow. 一.LiteFlow的介绍 LiteFlow官方网站和代码仓库地址 官方网站:https://yomahub.c ...

  9. Java项目有可能做到所有的代码逻辑均可热部署吗?

    前言 首先我们明确下什么叫做热部署,热部署是在不重启java虚拟机的前提下,自动更新class的行为,从而更新整个运行时的逻辑. 在java开发领域,热部署一直是一个难以解决的问题,java虚拟机理论 ...

  10. 转载MSDN 在ASP.NET 中执行 URL 重写

    转载文章原网址 http://msdn.microsoft.com/zh-cn/library/ms972974.aspx 摘要:介绍如何使用 Microsoft ASP.NET 执行动态 URL 重 ...

随机推荐

  1. Dynaimc CRM查找字段自定义过滤视图

    实现方式参考官方文档提供的Xrm.Page.getControl(arg).addCustomView(viewId, entityName, viewDisplayName, fetchXml, l ...

  2. idea社区版本创建springboot项目的三种方式

    文章目录一.前言一.方式1:spring 官方创建 springboot项目1.打开在线的 spring initializr2.选择项目的语言.版本.依赖等3. 解压源码包,并使用IDEA打开4.测 ...

  3. 项目PMP之十一项目风险管理

    项目PMP之十一--项目风险管理   一.定义:削弱负面风险,增强正面风险,将风险敞口保持在可接受的范围,扩大项目实现的概率 非事件类风险:变异性风险,已规划的不确定性(通过蒙特卡洛分析,缩小结果区间 ...

  4. Java一个入门级MVC基于Spring Boot项目

    首先根据上一篇文章内容创建一个Spring Boot项目,如图所示: 一,创建Controller并返回数据 在src/main/java/项目文件夹下面创建package,继续里面可以创建模块的pa ...

  5. wget命令简单使用

    wget是Linux下一个文件下载工具.wget支持HTTP.HTTPS.FTP协议,可使用HTTP代理. 所谓自动下载,是指 wget 可以在用户退出系统的之后在继续后台执行,直到下载任务完成. w ...

  6. Oracle数据库只能127.0.0.1连接,无法局域网远程通过IP访问

    今天使用Oracle时遇到一个问题,连接字符串中IP配置成127.0.0.1时可能正常访问数据库,当配置成实际IP地址时连接数据库失败.然后 telnet IP 1521 失败. 解决方案: 1. 打 ...

  7. Redis缓存异常及解决方案

    本文分享自天翼云开发者社区<Redis缓存异常及解决方案>,作者:l****n 本文向读者解释了Redis使用过程中,数据不一致.缓存雪崩.缓存击穿和缓存穿透等问题的定义,并给出对应的解决 ...

  8. Luogu P11036 GCD 与 LCM 问题 [ 绿 ] [ 构造 ] [ 数论 ] [ adhoc ]

    Luogu P11036 GCD 与 LCM 问题:梦熊的题真是又神又逆天. 思路 观察到有个奇数的特殊性质,我们尝试从奇数构造入手. 先来尝试带入极端数据,对于 \(\gcd\),我们可以把 \(b ...

  9. FreeSql学习笔记——0.FreeSql启动!

    FreeSql FreeSql是功能强大的 .NET ORM,支持 .NetFramework 4.0+..NetCore 2.1+.Xamarin等支持 NetStandard 所有运行平台.支持  ...

  10. 使用crewai创建属于你自己的AI团队

    crewai介绍 CrewAI 是一个用于协调自主 AI 代理的前沿框架. CrewAI 允许你创建 AI 团队,其中每个代理都有特定的角色.工具和目标,协同工作以完成复杂任务. 把它想象成组建你的梦 ...