【Go】在某个项目中引用Gitee或Github中自己上传的项目

背景

假如我们自己封装了一个项目,上传到Gitee或者Github中了,然后想在其它项目中引用这个项目,我们应该怎么做?

一、创建文件夹

首先,就是在创建项目之前,我们要先创建两个文件夹,这两个文件夹需要和你的 Gitee或Github 仓库路径保持一致

第一个文件夹就是 Gitee或Github 的域名,像 Gitee 的就是 “gitee.com”,Github的就是 “github.com”

第二个文件夹就是你在 Gitee或Github 上的用户名(个人空间地址上的名称)。

如图:

在这里插入图片描述
然后我们就可以创建这两个文件夹了:

在这里插入图片描述

创建好这两个文件夹后,就可以在里面创建项目了,我这里是创建了一个go-test项目。

二、打开并初始化mod文件

注意:使用编辑器打开时是打开gitee.com这个给文件夹,而不是项目文件夹。

在这里插入图片描述

使用idea打开gitee.com,我们初始化mod文件时,并不是在这个目录下的终端里面初始化。

在这里插入图片描述

定位到go-test项目根目录,在这个目录里面打开cmd,在这里面初始化mod,go.mod文件才会生成在这个项目的根目录里面。

在这里插入图片描述

在这里插入图片描述

这样我们就可以开始封装我们的代码了,测试了没问题就可以上传到仓库里了。

在这里插入图片描述

上传到仓库需要注意:

在这里插入图片描述

上传上去之后,就像下面这样:

在这里插入图片描述

三、打tag和创建发行版

排错

做完了上面两步操作,假如我们就直接在另一个项目引入,执行 go get gitee.com/hanshuangjianke/go-test 的话,是会报错的:

在这里插入图片描述

大概意思就是没有找到匹配的版本。

然后我们去创建一个发行版:

在这里插入图片描述

再去执行 go get gitee.com/hanshuangjianke/go-test ,发现还是上面那个报错,这是怎么回事?

是我们创建发行版的姿势不对??我去找了下,说是需要打标签,然后我点开标签那个tab,发现有一个标签啊?

在这里插入图片描述

然后我查了下,寻思应该在本地打个标签,然后推送到远程去:

在这里插入图片描述
第一个命令是执行成功了的,本地打好了标签,然后推送到远程仓库时,提示远程仓库里面已经存在这个标签了。合着我们提交完代码后,不能先急着在gitee上创建发行版?

本地和远程仓库都有了标签,我试着再执行 go get gitee.com/hanshuangjianke/go-test,还是不行,还是上面那个报错。

然后我用git命令,把本地和远程仓库的标签都删掉了:

在这里插入图片描述

分别执行这两个命令:

git tag -d v0.0.1-beta.1 # 删除本地标签  
git push origin :refs/tags/v0.0.1-beta.1 # 删除远程标签

在这里插入图片描述
之后再用git重新执行 git tag v0.0.1-beta.1git push --tags

在这里插入图片描述

这样就执行成功了。

这次再去执行 go get gitee.com/hanshuangjianke/go-test,怀着忐忑的心情,它终于执行成功了!!!

在这里插入图片描述

在这里插入图片描述

总结

我们将代码提交到仓库后,需要在本地给这个项目打标签,然后将标签推送到远程。注意不要在远程仓库里面去创建发行版或者标签!!!

直接在项目根目录使用git命令即可:

git tag v0.0.1-beta.1 # 本地打标签
git push --tags # 标签推送到远程仓库

如果标签名已经存在了,可以删除掉旧的标签名(本地和远程都需要删除)或者新建其它标签名。

如果是已有的项目想要改成 gitee.com/hanshuangjianke/xxx项目 这种结构的话,需要注意代码中和mod文件中的包路径,将包路径改正确后,提交到仓库,然后就在项目根目录使用git命令创建标签和推送标签。注意标签的提交信息,必须要是你改完包路径后的那次提交,如下图:
在这里插入图片描述

包路径不对的话,会有以下问题:

go: gitee.com/hanshuangjianke/go-excel@upgrade (v0.0.1-beta.1) requires gitee.com/hanshuangjianke/go-excel@v0.0.1-beta.1: parsing go.mod:
        module declares its path as: go-excel
                but was required as: gitee.com/hanshuangjianke/go-excel

或者

go: gitee.com/hanshuangjianke/go-excel imports
        go-excel/excel: package go-excel/excel is not in std (D:\Java\jdk\Go\src\go-excel\excel)
go: gitee.com/hanshuangjianke/go-excel imports
        go-excel/excel/model: package go-excel/excel/model is not in std (D:\Java\jdk\Go\src\go-excel\excel\model)

如果包路径错误,但还是有上面两个问题,检查标签的提交信息是否是正确改好包路径的那一次提交;

标签也正确但还是有上面两个问题,可以在需要引入 go-test 的项目中运行 go clean -modcache 来清除本地的Go模块缓存,或者,删除go.mod和go.sum文件,然后运行go mod init来初始化一个新的模块,接着运行 go get gitee.com/hanshuangjianke/go-test 来获取 go-test 模块。

  • 21
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

符华-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值