golang + Godeps: добавление новой зависимости переопределить файл Godeps.json

Я использую 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 папка.

Как я могу добавить эту зависимость вместо того, чтобы заменить ее?

1 ответ

Если ты не бежишь godeps save тогда новая зависимость не будет сохранена в вашем Godeps.json. Трудно представить, почему вам нужны две версии одной и той же библиотеки, но если вы действительно хотите это сделать, то во время развертывания вашего проекта сначала выполните godep restore а затем установите вашу зависимость как go get "github.com/robfig/cron"Это потом предотвратит замену.

Другие вопросы по тегам