本文发布于Cylon的收藏册,转载请著名原文链接~


goland使用vendor作为获取依赖源

软件版本:

  • system:windows10 1709
  • terminal: wsl ubuntu1804
  • goland:201903

goland 打开项目时使用mod模式,无法识别外部包的依赖

根据goland官方提示,开启时,将忽略go.mod依赖描述,所以就找不到相对应的依赖,但是编译时正常的。可以看到下图中,external libraries 并没有加载外部的库导致了无法识别。

此时想要正常使用的话,可以按照提示操作

将 goland 改为gopath模式,执行go mod vendor 将依赖同步到vendor 。此时正常。

当依赖更新时,可以手动添加对应的依赖库,go mod tidy 后 。因为vendor中没有新的依赖,需要手动执行下go mod vendor即可正常使用。

使用vendor编译

在编译时,可以使用 -mod=vendor 标记,使用代码主目录文件夹下vendor目录满足依赖获取,go build -mod=vendor。此时,go build 忽略go.mod 中的依赖,(这里仅使用代码root目录下的vendor其他地方的将忽略)

GOFLAGS=-mod=vendor 设置顶级vendor作为依赖 go env -w GOFLAGS="-mod=vendor" 进行设置。 取消 go env -w GOFLAGS="-mod="

本文发布于Cylon的收藏册,转载请著名原文链接~

链接:https://www.oomkill.com/2020/12/go-vendor-file-in-goland/

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」 许可协议进行许可。