2016-06-21 18 views
0

我正在使用Godeps來保存我的go項目的依賴關係。golang + Godeps:添加新的依賴覆蓋Godeps.json文件

現在我Godeps.json文件看起來像這樣:

{ 
    "ImportPath": "github.com/some/repo", 
    "GoVersion": "go1.6", 
    "GodepVersion": "v74", 
    "Packages": [ 
     "gopkg.in/mgo.v2", 
     "github.com/sendgrid/sendgrid-go", 
     "gopkg.in/olivere/elastic.v3" 
    ], 
    "Deps": [ 
     { 
      "ImportPath": "github.com/sendgrid/sendgrid-go", 
      "Comment": "v2.0.0-22-g6ea8b2b", 
      "Rev": "6ea8b2b2d54b2e54efcf8668867289a1838d96fd" 
     }, 
     { 
      "ImportPath": "github.com/sendgrid/smtpapi-go", 
      "Comment": "v0.4.0-7-gb88787c", 
      "Rev": "b88787cc8801ef961d7daef0bcb79ae3f50bfd52" 
     }, 
     { 
      "ImportPath": "gopkg.in/check.v1", 
      "Rev": "4f90aeace3a26ad7021961c297b22c42160c7b25" 
     }, 
     { 
      "ImportPath": "gopkg.in/mgo.v2", 
      "Comment": "r2016.02.04-1-gb6e2fa3", 
      "Rev": "b6e2fa371e64216a45e61072a96d4e3859f169da" 
     }, 
     { 
      "ImportPath": "gopkg.in/mgo.v2/bson", 
      "Comment": "r2016.02.04-1-gb6e2fa3", 
      "Rev": "b6e2fa371e64216a45e61072a96d4e3859f169da" 
     }, 
     { 
      "ImportPath": "gopkg.in/mgo.v2/internal/sasl", 
      "Comment": "r2016.02.04-1-gb6e2fa3", 
      "Rev": "b6e2fa371e64216a45e61072a96d4e3859f169da" 
     }, 
     { 
      "ImportPath": "gopkg.in/mgo.v2/internal/scram", 
      "Comment": "r2016.02.04-1-gb6e2fa3", 
      "Rev": "b6e2fa371e64216a45e61072a96d4e3859f169da" 
     }, 
     { 
      "ImportPath": "gopkg.in/olivere/elastic.v3", 
      "Comment": "v3.0.40", 
      "Rev": "7a92d18eaf7a9f95d603e70970fb5adcd4dc62f1" 
     }, 
     { 
      "ImportPath": "gopkg.in/olivere/elastic.v3/backoff", 
      "Comment": "v3.0.40", 
      "Rev": "7a92d18eaf7a9f95d603e70970fb5adcd4dc62f1" 
     }, 
     { 
      "ImportPath": "gopkg.in/olivere/elastic.v3/uritemplates", 
      "Comment": "v3.0.40", 
      "Rev": "7a92d18eaf7a9f95d603e70970fb5adcd4dc62f1" 
     } 
    ] 
} 

如果我想用去拿安裝新的依賴性:

go get "github.com/robfig/cron"

這將覆蓋我的Godeps.json文件,它會只存儲我已安裝的最新軟件包,並且更多它會從我的vendor文件夾中刪除軟件包。

如何添加此依賴項而不是替換它?

+1

除了「使用'go get'」不會更新你的代碼(在你通過'godep update'或類似代碼明確做出之前,只要溝通Godep並使用govendor - 爲我節省了很多頭痛;-) – Havelock

+0

@Havelock非常好的建議。 – Shikloshi

回答

0

如果您不運行godeps save那麼新的依賴關係將不會保存在您的Godeps.json中。很難想象爲什麼你想要同一個庫的兩個版本,但是如果你真的想這樣做,那麼在部署你的項目的時候,首先做godep restore然後安裝你的依賴關係爲go get "github.com/robfig/cron"。這樣就會阻止替換