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