发布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 这个包


小结


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


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

目录
相关文章
|
6月前
|
存储 人工智能 缓存
AI问诊系统开发架构解析:大模型 + 医疗知识库如何落地
本文详解可商用AI问诊系统落地实践:摒弃纯对话模式,采用“大模型+医疗知识库(RAG)+分诊规则引擎+业务系统”四层架构,解决幻觉、不可控、非结构化、合规风险等核心痛点,涵盖架构设计、知识检索、症状抽取、智能分诊与生产级部署关键代码与经验。(239字)
|
4月前
|
数据采集 机器学习/深度学习 人工智能
Agent 构建变轻、Agent 架构变薄,什么正在变厚?
群体智能已在从实验走向应用,从另一维度推动 Agent Team 的共鸣。
478 32
|
10月前
|
JSON API 数据安全/隐私保护
蘑菇街 item_search 接口对接全攻略:从入门到精通
蘑菇街item_search接口是获取时尚商品数据的核心工具,支持关键词、分类、价格等多维度筛选,适用于选品、竞品分析与趋势监控。因官方API限制严格,本文详解其动态接口对接、加密参数生成、反爬应对及Python实现方案,助力开发者构建稳定高效的数据采集系统。
|
存储 负载均衡 Java
SpringCloud框架
本文介绍了微服务架构中常用的技术组件与原理,包括Nacos与Eureka的服务注册与发现机制、Nacos的分级存储模型、OpenFeign的远程调用流程、Ribbon与Spring LoadBalancer的负载均衡策略、Hystrix与Sentinel的限流熔断机制、滑动窗口算法原理,以及Spring Cloud Gateway的路由断言与过滤器功能,全面覆盖微服务核心治理能力。
|
7月前
|
人工智能 分布式计算 DataWorks
阿里云大数据AI产品月刊-2025年12月
大数据& AI 产品技术月刊【2025年 12 月】,涵盖 12 月技术速递、产品和功能发布、市场和客户应用实践等内容,帮助您快速了解阿里云大数据& AI 方面最新动态。
|
11月前
|
并行计算 C++ Windows
|
12月前
|
SQL 数据挖掘 BI
数据分析的尽头,是跳出数据看数据!
当前许多企业在数据分析上投入大量资源,却常陷入“数据越看越细,业务越看越虚”的困境。报表繁杂、指标众多,但决策难、行动少,分析流于形式。真正有价值的数据分析,不在于图表多漂亮,而在于能否带来洞察、推动决策、指导行动。本文探讨如何跳出数据、回归业务场景,实现数据驱动的有效落地。
|
域名解析 NoSQL 网络协议
如何创建一个自己的网站(适合零基础的用户)
网站制作流程中的每个阶段都至关重要,它们共同构建了一个功能完善、用户友好的网站。在前期准备阶段,团队已经对网站的类型和功能进行了深入的分析和规划,这为后续的网页设计和程序编码奠定了坚实的基础。
5348 1
|
监控 Unix 数据安全/隐私保护
告别中央服务器:Syncthing实现点对点文件同步
告别中央服务器:Syncthing实现点对点文件同步
1778 3
|
Java Maven Kotlin
在 build.gradle.kts 添加 阿里云仓库
在 build.gradle.kts 添加 阿里云仓库
3519 0