Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 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 это, по сути, база данных, вполне логично для доступа к базе данных использовать клиентскую библиотеку предоставленную ее разработчиками.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации