[英]Force a specific version for a dependency when using dep
我正在使用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分支作為依賴。 在此,可以使用HistorySearchFold
字段。 使用dep init
/ dep ensure
不是master,而是將1.4標簽拉入vendor文件夾。
因此我的問題是:我如何強制dep拉取主分支呢?
我嘗試在我的Gopkg.toml文件中添加以下內容:
[[constraint]]
branch = "master"
name = "github.com/chzyer/readline"
可悲的是,這不起作用。 當我檢查拉入供應商文件夾的版本時,它仍然是1.4 。
如果您試圖控制瞬態依賴的版本(不是您的包直接使用的版本),您應該使用[[override]]
指令
它看起來與約束完全相同,但即使不直接由包繼承,它也會限制依賴關系。
[[override]]
branch = "master"
name = "github.com/chzyer/readline"
請注意,這對於依賴項解算器發現沖突依賴項時也很有用,例如,包P使用包A和B,並且兩者都依賴於包X的不同版本...您可以在包內使用包X上的覆蓋包P
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.