Chr*_*ian 5 dependencies go dependency-management
我正在使用dep来管理我正在编写的Go工具的依赖项.
此工具使用https://github.com/desertbit/grumble作为依赖项.这反过来使用https://github.com/chzyer/readline作为依赖.问题是,当我尝试运行我的工具时,我收到以下错误:
vendor/github.com/desertbit/grumble/app.go:295:20: unknown field 'HistorySearchFold' in struct literal of type readline.Config
我知道为什么会这样.grumble使用readline的master分支作为依赖.在这个领域是可用的.使用/ 不使用master时,1.4标签会被拉入vendor文件夹.HistorySearchFold
dep init
dep ensure
因此我的问题是:我如何强制dep拉取主分支呢?
我尝试在我的Gopkg.toml文件中添加以下内容:
[[constraint]]
branch = "master"
name = "github.com/chzyer/readline"
Run Code Online (Sandbox Code Playgroud)
可悲的是,这不起作用.当我检查拉入供应商文件夹的版本时,它仍然是1.4.
如果您试图控制瞬态依赖项的版本(不是您的程序包直接使用的版本),则应使用该[[override]]
指令
它看起来与约束完全相同,但即使不直接由包继承,它也会限制依赖关系.
[[override]]
branch = "master"
name = "github.com/chzyer/readline"
Run Code Online (Sandbox Code Playgroud)
请注意,这对于依赖项解算器发现冲突依赖项时也很有用,例如,包P使用包A和B,并且两者都依赖于包X的不同版本...您可以在包内使用包X上的覆盖包P