028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

gomodules如何使用本地库、合规库、私有库

小编给大家分享一下 go modules如何使用本地库、合规库、私有库 ,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联是一家专注于网站设计制作、网站制作与策划设计,陵水黎族网站建设哪家好?创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:陵水黎族等地区。陵水黎族做网站价格咨询:18982081108

一、简介

公司项目使用 go module 开发的过程中会有一些自己的库要引用,这些库用gitlab管理,需要研究引用gitlab库的方法,下面是研究过程中的一些经验。

介绍两种引用方案:

上述名词中的 合规 是指:

满足上述条件即是 合规库,否则是 不合规库,由于通常不合规库都是私有的,这里直接叫 私有不合规库。 其中,违反第3点的最为恶心(官方不支持,给官方提需求的同时,不得不吐槽这种情况太恶心了)。

注意:本文撰写于 2020年7月3日,go版本 1.14.4,到撰写日为止内容真实有效,均经过本人验证。

二、引用本地目录

修改文件 go.mod:

module main

go 1.14

// 替换规则
replace (
    github.com/pborman/uuid => /data/go-packages/uuid v1.2.0 // 绝对路径 或 相对路径 都可以
)

// 源地址
require (
    github.com/pborman/uuid v1.2.0
)

默认使用 github.com/pborman/uuid 包会到 Github上去下载,但这个包还在本地开发中并未push到线上,那么可以通过 replace 配置来重定向当前项目对该包的加载路径:

github.com/pborman/uuid => /data/go-packages/uuid

这里 /data/go-packages/uuid 为本地包的绝对路径,这样写就可以了,当本地 uuid 包代码修改后就可以在当前项目看到实时效果了,注意中间符号是 =>

配置好以后正常拉取代码、编译、调试。

二、引用合规库

引用本地目录类似,修改文件 go.mod:

module main

go 1.14

// 替换规则
replace (
    github.com/pborman/uuid => gitee.com/gober/uuid v1.2.0 // 开源中国地址
)

// 源地址
require (
    github.com/pborman/uuid v1.2.0
)

接下来正常拉取代码、编译、调试。

三、引用私有不合规库

这里我们介绍第二种情况

3.1、配置仓库访问权限

有以下两种授权方式:

3.2、本地配置“访问令牌(Access Token)”参数

"ssh密钥"授权忽略本节

对本项目生效:

git config http.extraheader "PRIVATE-TOKEN:YOUR_PRIVATE_TOKEN"

对所有git项目生效:

git config --global http.extraheader "PRIVATE-TOKEN:YOUR_PRIVATE_TOKEN"

注:根据需求任意选择上面一个配置即可

3.3、配置使用git方式拉取代码

git config --global url."git@{{gitlab_url}}:groupName/projectName.git".insteadOf "https://{{gitlab_url}}/groupName/projectName.git"`

也可以直接全局替换,那么可以拉取域名下的所有包,如:

git config --global url."git@{{gitlab_url}}:".insteadof "https://{{gitlab_url}}/"

上面是通过命令修改配置,也可以像这样,直接修改配置文件 ~/.gitconfig,在里面添加如下配置:

[url "git@{{gitlab_url}}:"]
    insteadOf = https://{{gitlab_url}}/

注意:

insteadof 中的参数是 https,因为不管目标地址是http还是https,go get默认使用https方式访问,因此我们要强制将https转换成git协议。

五、恶心至极的私有不合规库

为什么会有恶心至极的私有不合规库?这种库有什么特点?

这种库把合规库所有的标准践踏一遍,也就是说它违反了每一条规则:

其中第3点并不重要,第2点是产生这种情况的根源。

这种情况下,我们要:

以上是“ go modules如何使用本地库、合规库、私有库 ”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


网站标题:gomodules如何使用本地库、合规库、私有库
文章来源:http://www.tsicrk.com/article/ppjgeh.html

其他资讯

让你的专属顾问为你服务

2.3594s