Pull to refresh

Comments 12

Не лучше ли форкать все зависимости, чтоб не зависеть от такого рода случайностей?

Лучше настроить Nexus Proxy.
Даже если оригинальная репа недоступна - на нексусе будет закачан артифакт, в крайнем случае не последней версии.

Я предпочитаю не последнюю, а проверенную и оттестированную с моим продуктом версию. Возможно, подправленную. Поэтому всегда форкаю, завожу свою ветку для возможных правок, и форк апдейчу (если есть в этом потребность) в начале релизного цикла, чтобы до конца цикла неожиданностей не иметь.

Nexus/artifactory просто кешируют версии . Вы запрашиваете версию у нексуса, он скачивает себе, и отдает вам. Гибзаб может тоже упасть или мавен централ, да и вообще не безопасно на машине где сборка идёт ,открывать доступ к интернету, а не только к локальным ресурсам компании. Там же можете и удалять не используемые у себя вообщем хорошая штука , попробуйте.

Локальное кэширование - отличная идея, особенно для веб- или скриптовой разработки, или когда дерево зависимостей большое. У меня немного другая ситуация - зависимостей не очень много (первые десятки), и они все C++-ные, поэтому они все локально построены и в NuGet-овские пакеты завернуты, так что дополнительное кэширование не требуется. Нередко приходится в них что-то подправлять, так что без форка трудно обойтись. Но да, это несколько другая история, прямого отношения к статье не имеющая.

Продакшен, релиз без фиксации версии, сборка прям с внешних гитов - серьезно?

Фиксация версии может быть была.

А что тут такого? Не все в космической отрасли работают, у некоторых клиентами магазинчики и фитнес-клубы являются. Но у них тоже и продакшн, и релизы присутствуют. Собралось успешно - переключился, нет - ищи проблему. Обычно успешно собирается, инфраструктура айтишная довольно надёжная.

Но так-то зависимости должны были остаться в кэше у какого-нибудь девелопера, их можно было достать, оформить локальный репозиторий в проекте (composer.json):

{
  "repositories": {
    "local": {
      "type": "artifact",
      "url": "../repo/"
    }
  }
}

и выложить в ../repo/ нужные зависимости в виде zip-файлов:

и можно выкатываться.

Да прямо из развёрнутого дев-проекта можно делать - закатать в zip любой фолдер из ./vendor/{name}/, главное, чтобы composer.json внутри был с нужным названием и всем остальным.

а как версию пакета указать, которую подсовываешь? У меня не вышло, но я не оч много времени старался))

Скоро без внешних зависимостей нельзя будет даже написать Hello World или помигать светодиодом. Или уже?

Elasticsearch это, по сути, база данных, вполне логично для доступа к базе данных использовать клиентскую библиотеку предоставленную ее разработчиками.

Sign up to leave a comment.

Articles