gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章golang使用 gomodule 在公共测试环境管理go的依赖的实例详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

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

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

  。

1、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的依赖的实例详解

  。

2、服务器依赖管理

  。

  。

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

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

  。

2、编译工程 。

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

  。

3、踩坑记录。。

  。

  。

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使用 gomodule 在公共测试环境管理go的依赖的实例详解的文章就介绍到这了,更多相关golang在公共测试环境管理go的依赖内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/xiaoliizi/article/details/107051067 。

最后此篇关于golang使用 gomodule 在公共测试环境管理go的依赖的实例详解的文章就讲到这里了,如果你想了解更多关于golang使用 gomodule 在公共测试环境管理go的依赖的实例详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com