Modules和Vendor
-
Vendor
- 使用的时候,代码依旧要放在go path路径下
- 每个项目都要有一个vendor项目,然后下载到项目下的此目录,重复率很高
-
modules
- 可以放在任何目录,配置好代理,下载方便,都在一个仓库文件,不用重复下载
modules怎么面对,非正规的路径
- 以bytom来说,可能因为某些原因,导致path路径和代码中包使用路径不一致
- 代码中import的路径:github.com/vapor
- github上的代码路径:github.com/Bytom/vapor
如果我想使用这个代码中的函数,怎么引用呢?
使用replace为导入的包指定下载的路径
replace github.com/vapor v0.1.0 => github.com/Bytom/vapor v0.1.0
在go.mod文件中添加这一行代码,那么就可以在你的代码中随意使用了
import (
"github.com/vapor/common"
"github.com/vapor/consensus"
"github.com/vapor/consensus/segwit"
)
遇到这样的问题,还有什么方式解决呢?
- 可以在GitHub上提issue(当然由于项目很大,可能无法修改,即使大家都知道这个问题)
- 使用vendor
有疑问加站长微信联系(非本文作者)