go get:由-mod = vendor禁用

我正在使用Go模块,并且使用供应商模式,因为它可以将CI速度提高2倍。</ p >

我这样做:</ p>

 转到mod供应商
go build -mod = vendor ...
</ code> </ pre>

,我可以毫无问题地构建我的应用程序。</ p>

但是当我想使用 go get </ code>时,例如要安装 golint </ code>:</ p>

 去获取-u golang.org/x/lint/golint
</ pre>

它 </ p>

如果我尝试:</ p>

  go get -mod = vendor -u golang,将再次下载我所有的项目依赖项,而不仅仅是golint。  .org / x / lint / golint 
</ code> </ pre>

我得到:</ p>

  go得到:被-mod =禁用 vendor 
</ code> </ pre>

Lint将用于我的开发docker映像中,而不用于生产者中,因此我不想将其添加到 go中。 mod </ code> </ p>

我该怎么办?</ p>
</ div>

展开原文

原文

I'm using Go modules, and I use vendoring mode, as it speed up 2x my CI.

I do:

go mod vendor
go build -mod=vendor ...

and I can build my app without any issue.

But when I want to use go get, for instance to install golint:

go get -u golang.org/x/lint/golint

It will download all my project dependencies again, not just golint.

If I try:

go get -mod=vendor -u golang.org/x/lint/golint

I get:

go get: disabled by -mod=vendor

Lint will be used in my dev docker image, but not in the prod one, so I don't want to add it to go.mod

What can I do about it ?

dsiuy42084
dsiuy42084 您没有告诉您究竟是什么操作之后才找不到二进制文件。总而言之,将-x命令行标志添加到应该编译编译对象的任何go调用中通常会使该工具清楚地知道它在做什么。试试看。
大约一年之前 回复
dongque5529
dongque5529 没关系,但是我找不到我的二进制文件……您知道它在哪里吗?我试过$GOPATH/bin/golint,但它不在这里:(
大约一年之前 回复
donglu9978
donglu9978 好的,太好了,所以我可以免费包含所有测试依赖项等。问题解决了。我什至会保存一个docker层
大约一年之前 回复
doupo5861
doupo5861 否。二进制文件仅包含从main导入(直接或传递)的包。
大约一年之前 回复
doutan3192
doutan3192 不是,但是我想如果有更多的依赖关系,二进制文件会更大,不是吗?
大约一年之前 回复
dongmu3457
dongmu3457 为什么您的产品docker映像根本不包含任何源代码?
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐