簡體   English   中英

使用相同庫的兩個項目中的依賴關系問題

[英]Dependency issue within two projects that use same lib

我有兩個項目:

/myproject
/sharedproject

它們都由dep管理,我已經執行go get -u github.com/golang/dep/cmd/dep以獲得最新的dep版本,並在兩個項目上運行dep ensure go get -u github.com/golang/dep/cmd/dep

當我運行myproject以下錯誤:

cannot use op (type *"myproject/vendor/github.com/go-openapi/spec".Operation) as type *"sharedproject/vendor/github.com/go-openapi/spec".Operation

有什么問題以及如何解決?

看起來情況是sharedprojectgithub.com/go-openapi/spec依賴關系,而myprojectGOPATH獲取了sharedprojectgithub.com/go-openapi/spec依賴關系。

現在,當你是指github.com/go-openapi/specsharedproject ,它指的是供應商目錄,這是從同一個包在技術上是不同的包里面GOPATH ,即使雙方有相同的內容。 所以,當你通過類型的變量*github.com/go-openapi/spec.Operationmyproject到的功能sharedproject ,該類型的包從什么預期,編譯失敗的區別。

要解決此問題,請確保將sharedproject供應在myproject 執行此操作時, dep ensure sharedproject不帶其供應商目錄的sharedproject副本放入myproject的供應商目錄中。 之后, myprojectsharedproject都將使用myproject的供應商目錄中的github.com/go-openapi/spec包。

如果您經常更改sharedproject並想立即在myproject使用這些更改,那確實會使本地開發變得困難(在將更改推送到Git遠程之前,不能使用dep )。 我可以通過不使用dep手動將sharedproject復制到myproject的供應商目錄中來解決此問題(當然不包括供應商目錄)。 注意不要將那些手動復制的更改提交到Git!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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