以前我使用go dep
,但现在公司确保官方工具是go mod
。
当我使用go dep
时,我可以将本地依赖包添加到vendor中,并在Gopkg.toml
中ignored
以忽略从仓库搜索软件包。我可以正常执行go dep update
。
现在我使用go mod
,我也将本地依赖包添加到vendor中,并在go.mod
中添加了exclude
。但是当我执行go mod tidy
时,即使我的项目存在import xxx
,它也会删除该软件包。
我做了什么:
- 创建新项目
- 执行go mod init
修改go.mod
exclude privaterepo.com/bb/bb
将我的本地模块复制到供应商,因为本地模块位于不支持https的私有存储库中。
- 现在vendor看起来像:
vendor |-github.com/aa/aa |-privaterepo.com/bb/bb
- import "privaterepo.com/bb/bb"
- 执行go build -mod vendor
- 然后我得到错误"cannot find module for path privaterepo.com/bb/bb"。我尝试使用replace,但它也不起作用。
那么,我应该怎么做才能将本地软件包
添加到vendor并避免go mod
将其删除?
go mod vendor
吗? - ttomalakgo mod vendor
,它就不会创建供应商文件夹。 - linfeng