Go-modules使用心得一

41次阅读

共计 542 个字符,预计需要花费 2 分钟才能阅读完成。

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

正文完
 0