背景:调试服务最好的方式就是直接上机实践。对在公司的员工来说,在同一套服务上协同开发比在单独的环境上开发,应该会更有感觉。有问题可以一起发现并解决,也能够一同开发需求。
但是,公司的测试机往往是没办法连外网的,而golang 的大部分工程都需要直接从github 上下载依赖,这就导致 依赖文件需要先提前上传到开发机上。那么当开发机上需要运行多个golang 工程的时候,如何共享这些依赖,减少维护依赖库的工作量呢?

这也是需要大家协作完成的~

最终总结:项目采用 go module + vendor 模式,服务器上使用统一的GOPATH 路径。

一、go 工程配置

既然是协同开发,工程我们就建议使用 go module 对依赖包进行管理了。这样大家可以把依赖都放到统一的GOPATH,如果有新增依赖,直接放到GOPATH 目录即可。

关于go module 的介绍

1、初始化 go.mod 代码

在工程根目录中,执行 go mod init 工程的github地址,生成go.mod 文件。

示例:go mod init gitee.com/atamagaii/mygoproject

2、整理依赖

继续在当前目录,执行 go mod tidy,整理工程的依赖。
正常情况下,执行完成之后go.mod,并且会生成一个go.sum 文件。

golang使用 gomodule 在公共测试环境管理go的依赖的实例详解
golang使用 gomodule 在公共测试环境管理go的依赖的实例详解

期间可能会因为import 编写不规范,遇到一些报错,详见踩坑记录。

注意:go.mod 和 go.sum 文件都建议提交到git 上,这样在多人协同开发一个项目的时候,能保证依赖版本的统一。

3、保存项目依赖到 vendor 目录

直接执行 go mod vendor 即可
详细说明参考踩坑记录。

vendor 目录每次都可以在本地生成,因此不需要提交到git 上。

标准的工程目录如下:

golang使用 gomodule 在公共测试环境管理go的依赖的实例详解

二、服务器依赖管理

 1、上传所有依赖到服务器的GOPATH 目录

主要是 golang.org、github.com、gopkg.in 目录

2、编译工程

在自己工程的 src 目录,执行:
go build -o xxx xxx.go

三、踩坑记录。。

1、PuerkitoBio 踩坑

执行gobuild 之后报这个错误
go: github.com/PuerkitoBio/goquery@v1.5.1: reading github.com/PuerkitoBio/goquery/go.mod at revision v1.5.1: unknown revision v1.5.1
这个包不知道为啥,通过 go get 下载会自动进行依赖,并进行编译放到pkg 库。

解决方法:在开发环境,先通过 go mod vendor 指令将项目本身的直接依赖放到vendor目录。(这个目录就可以不用提交了)
生成效果:

golang使用 gomodule 在公共测试环境管理go的依赖的实例详解

然后将这个目录也放到服务器上,再执行:
go build -mod=vendor -o xxx xxx.go

在modules.txt 中的依赖会优先从vendor 目录中查找。

标签:
golang在公共测试环境管理go的依赖,golang,gomodule管理go依赖

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。