我使用Godeps
在我的go项目中保存我的依赖项。
现在我的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:
安装新的依赖项 go get "github.com/robfig/cron"
这会覆盖我的Godeps.json
文件,它只会存储我安装的最新软件包,还会更新它将从我的vendor
文件夹中删除软件包。
如何添加此依赖项而不是替换它?
答案 0 :(得分:0)
如果您没有运行godeps save
,那么新的依赖项将不会保存在您的Godeps.json中。很难想象为什么你会想要同一个库的两个版本,但是如果你真的想要这样做,那么在项目部署期间,先做godep restore
然后将你的依赖安装为{ {1}}。这将阻止替换