发布golang第三方包

简介: 发布golang第三方包

创建项目仓库


640 (1).jpg


  1. 首先输入仓库的名字,我这里输入simpleExample,用来做演示


  1. 这里选择public,公开。要不并不好拉


  1. 选择需要添加的文件(可选)


  1. 鼠标左键点击create repository创建此仓库


完成后就有一个名为simpleExample的项目仓库,如下图所示。


640 (2).jpg


如果第三步全都没选的话就是另外一个图了


这一步还是很简单的,毕竟github,全球最大的程序员交友网站不是。2110年了相信大家还是都会用的,是实在不会的,可自行百度,或者Google。


拉取仓库,编辑示例代码


640 (3).jpg


第一步,鼠标左键点击code


第二步,点击后面类似于粘贴板的东西,复制https的URL


然后在cd到GOPATH中使用git,把这个项目clone下来


例如,我在这里的使用的git命令如下


git clone https://github.com/Golzaes/simpleExample.git


执行成功后使用 ls命令查看一下


640 (4).jpg


使用编辑器打开simpleExample这个项目文件夹,如下图所示


640 (5).jpg


go module初始化


+ go mod init "github.com/Golzaes/simpleExample"
- go mod init "github.com/组织名/项目名"


注意:这里的一定是"github.com/组织名/项目名"这样的格式


创建文件夹与示例代码


// Example/example.go
package exampleCode
import "math/rand"
// ReadNumber create random number
func ReadNumber() int {
    // random number range
    rnr := 10
    //  returns, as an int, a non-negative pseudo-random number in [0,n)
    return rand.Intn(rnr)
}


注意这里的函数名ReadNumber,首字母必须大写!!!


否则无法再外部调用此函数


来个简单的单元测试


// Example/example_test.go
package exampleCode
import "testing"
func TestReadNumber(t *testing.T) {
    tests := []struct {
        name string
        want int
    }{
        // TODO: Add test cases.
        {
            "exampleCode1",
            1,
        }, {
            "exampleCode2",
            2,
        }, {
            "exampleCode3",
            3,
        }, {
            "exampleCode4",
            4,
        },{
            "exampleCode5",
            5,
        },
    }
    for _, tt := range tests {
        t.Run(tt.name, func(t *testing.T) {
            if got := ReadNumber(); got != tt.want {
                t.Errorf("ReadNumber() = %v, want %v", got, tt.want)
            }
        })
    }
}


运行测试


640 (6).jpg


有个测试过了,说明我们的代码没有问题,也可以外部调用


推送与发布代码


使用以下命令,提交与push


git add exampleCode/
git commit -am "add exampleCode"
git push origin master


640 (7).jpg


仔细对比就会发现,这里多了个exampleCode文件夹。到这里我们就已经将代码push到了github,接下来我们发布一个,这样我们可以在另外一个项目中以第三方包的形


使用


第一步,点击releases下面的create a new releases


640 (8).jpg


先 填写标签号(常规格式是 x.y.z)例如我的v0.0.1,


填写发表的标题,一般是项目名


填写简介


640 (9).jpg


然后鼠标左键点击 左下方的publish release,进行发布,发布完成后会自动跳转


如下图所示的发布栏


640 (10).jpg


640 (11).jpg


至此,发布部分就已经完成了。那么自己来测试一下这个第三方包


使用发布的第三方包


新建一个项目、go mod init初始化、创建文件夹就不过多赘述了


下载我们发布的包


640 (12).jpg


go get github.com/Golzaes/simpleExample/exampleCode


640 (13).jpg


在项目中import 这个包


小结


本文从创建仓库开始到发布第三方包后到使用第三方包,这样我们就可以跨项目使啦。


如果测试未完成,请重新查阅。尤其是注意点!!!

目录
相关文章
|
SQL Java 数据库连接
Mybatis之核心配置文件详解、默认类型别名、Mybatis获取参数值的两种方式
【1月更文挑战第3天】 一、核心配置文件详解 二、默认的类型别名 三、MyBatis的增删改查 四、MyBatis获取参数值的两种方式 1、单个字面量类型的参数 2、多个字面量类型的参数 3、map集合类型的参数 4、实体类类型的参数 5、使用@Param标识参数
321 2
Mybatis之核心配置文件详解、默认类型别名、Mybatis获取参数值的两种方式
|
存储 缓存 NoSQL
Redis Cluster 为什么选哈希槽不选一致性哈希?
Redis相信大家都很熟悉,它是我们常用的分布式缓存中间件之一。那么大家对于Redis Cluster集群是否熟悉呢?在Redis集群中并没有使用一致性hash, 而是引入了 **哈希槽**的概念,为什么选哈希槽不选一致性哈希。
4533 1
|
10月前
|
SQL 运维 关系型数据库
数据库自治服务DAS:云数据库高效运维的最佳拍档
数据库自治服务DAS是阿里云推出的高效运维解决方案,旨在简化复杂数据库管理。DAS基于机器学习和专家经验,提供自修复、自防护、自优化功能,涵盖多源数据库支持、丰富的应用场景及端到端运维能力。其企业版引入AI技术,实现智能诊断与优化,显著提升数据库稳定性、安全性和性能。通过自动化处理常见问题,如SQL优化、容量规划等,DAS大幅降低人工干预需求,缩短故障恢复时间,助力企业实现高效、智能化的数据库运维管理。
427 2
|
开发框架 网络协议 前端开发
Python高性能web框架--Fastapi快速入门
Python高性能web框架--Fastapi快速入门
599 1
|
12月前
|
人工智能 自然语言处理 安全
亲测有效:claude入口_claude官网入口_国内使用claude的两种方法
Claude,作为 Anthropic 公司潜心研发的杰作 ✨,凭借其卓越的自然语言处理能力、深刻的上下文理解和无懈可击的安全性 🛡️,在人工智能领域熠熠生辉。然而,由于一些客观因素的限
|
Cloud Native 关系型数据库 分布式数据库
国内首批|阿里云PolarDB通过国家标准GB18030-2022最高级别认证
阿里云瑶池旗下的云原生数据库PolarDB完成了强制性国家标准GB 18030-2022《信息技术 中文编码字符集》标准测评,通过了该标准的最高级别3级认证,成为首批通过该测评认证的关系型数据库管理软件。
|
存储 监控 安全
深度剖析Linux进程的内部机制:一探/proc/pid的奥秘
深度剖析Linux进程的内部机制:一探/proc/pid的奥秘
2529 0
|
弹性计算 运维 Linux
ECS多场景迁移上云最佳实践
阿里云弹性计算团队十三位产品专家和技术专家共同分享云上运维深度实践,详细阐述如何利用CloudOps工具实现运维提效、弹性降本。
751 0
|
Linux
修改MAC地址
修改MAC地址
1765 1
|
程序员
Win10秘笈:两种方式修改网卡物理地址(MAC)
每台能够上网的电脑都有网卡,不管是有线还是无线,网卡本身都得有物理地址,也就是MAC(Media Access Control 或 Medium Access Control)地址。
6126 0