簡體   English   中英

使用dep時強制特定版本的依賴項

[英]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使用readlinemaster分支作為依賴。 在此,可以使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM