go mod vendor包管理填坑实录

1 篇文章 0 订阅
1 篇文章 0 订阅

离线使用第三方包依赖,进行项目的管理与编译。主要是面临goland中import变红,但却能正常编译的问题,这纯粹是我个人原因:goland中的GOPATH填错了!!!(见如下第3、4步)

1.在项目根目录下建立vendor目录

把所有需要依赖的第三方包,放入vendor目录中

2.go mod init 项目名

把当前项目初始化为mod项目,在项目中自己管理所需依赖。并在go.mod文件中添加依赖如下:
require (
	github.com/PuerkitoBio/goquery v1.5.1
	github.com/astaxie/beego v1.12.2
	github.com/go-sql-driver/mysql v1.5.0
	github.com/json-iterator/go v1.1.10
	github.com/prometheus/common v0.13.0 // indirect
	github.com/smartystreets/goconvey v1.6.4
	golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a // indirect
	golang.org/x/net v0.0.0-20200822124328-c89045814202 // indirect
	golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6 // indirect
	golang.org/x/text v0.3.3 // indirect
	google.golang.org/protobuf v1.25.0 // indirect
)

3.确保go env

确保go env,尤其是GO111MODULE、GOPATH、GOFLAGS、GOPROXY:
set GO111MODULE=on
set GOFLAGS=-mod=vendor
set GOPATH=D:\WORK\gopath
set GOPROXY=https://goproxy.io,direct

4.确保go env后,在goland中确认如下处不要勾选

在这里插入图片描述

并确认此处的GOPATH正确

在这里插入图片描述

其余环境变量如下,仅供参考:

set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\albert\AppData\Local\go-build
set GOENV=C:\Users\albert\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=-mod=vendor
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\WORK\gopath
set GOPRIVATE=
set GOPROXY=https://goproxy.io,direct
set GOROOT=D:\developTool\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\developTool\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\albert\AppData\Local\Temp\go-build652112946=/tmp/go-build -gno-record-gcc-switches
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
go mod vendor是一个命令行工具,用于将主模块的vendor目录重置为含构建和测试所有主模块所需的所有。它不括供应商的测试代码。如果主模块的根目录中存在vendor目录,并且主模块的go.mod文件中的go版本为1.14或更高版本,则会自动使用该vendor目录。要显式启用供应商功能,请使用标志-mod=vendor。要禁用供应商功能,请使用标志-mod=readonly或-mod=mod。go mod vendor还有其他好处,例如当从版本控制系统中删除依赖项或代理服务器丢失模块时,可以使用vendor解决问题。此外,它还可以帮助您跟踪和调试依赖项,并在需要时进行测试更改。运行go mod tidy和go mod vendor后,您的更改将被替换。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [Go:go mod vendor 使用](https://blog.csdn.net/test1280/article/details/120855865)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Vendor使用:golang的vendor是个啥?](https://blog.csdn.net/qq_39458487/article/details/124803432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值