0


【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.1

git 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/[email protected]: 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:packagego-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:packagego-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 模块。

标签: golang gitee github

本文转载自: https://blog.csdn.net/weixin_43165220/article/details/137492116
版权归原作者 符华- 所有, 如有侵权,请联系我们删除。

“【Go】在某个项目中引用Gitee或Github中自己上传的项目”的评论:

还没有评论