Рекомендовать Build Artifact Repository Manager

В настоящее время мы используем FTP для поддержки распространения артефактов сборки и сторонних продуктов (только для внутреннего использования).

Артефакты — это документы (HTML/pdf/chm/...), библиотеки (.dll/.so/.a/.jar/...), программы (.exe/.jar/...) и все остальное. Они не ограничиваются Java/.NET и могут происходить из разных культур (прошивка, драйвер, мобильная/рабочая станция, графический интерфейс, Win/Linux/Mac/Solaris/AIX и т. д.).

Для организации иерархии мы используем такие пути:

ftp://3pp/VENDOR/PRODUCT/VERSION/...
ftp://3pp/opensource/PACKAGE-x.x.x.tar.bz2
ftp://dist/PRODUCT/VERSION/...

Для сохранения описания артефактов мы используем простые тестовые файлы README и CHANGES (reStructuredText).

Чего не хватает в этой схеме?

  • Отсутствующие разрешения (любой может повредить хранилище).
  • Отсутствует отслеживание зависимостей (поэтому каждый файл сборки должен быть обновлен, если изменилась зависимость от версии).
  • Отсутствует активность загрузки (некоторые файлы больше не нужны, но мы не знаем какие).

Я не ищу глубоко существующие решения. Некоторые менеджеры пакетов, такие как rpm/dpkg, слышали о репозитории Maven и т. д.

Пожалуйста, порекомендуйте Build Artifact Repository Managers. Также приятно слышать о недостатках и ограничениях.

ОБНОВЛЕНИЕ


person gavenkoa    schedule 18.08.2011    source источник


Ответы (2)


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

Artifactory и Nexus также имеют платные версии.

В этих репозиториях можно хранить любые файлы, и вам не нужно использовать Maven. Вы можете вручную развернуть на них артефакты. Вы можете настроить детальное управление доступом. Они хорошо интегрируются с инструментами автоматизированной сборки.

Я думаю, что использование одного из этих инструментов сэкономит вам много усилий!

Вот довольно непредвзятая (управляемая сообществом) матрица сравнения между этими тремя.

person M. Dudley    schedule 11.07.2012
comment
Абсолютно неправда. В этих репозиториях можно хранить программные артефакты любого типа. У Java могут быть самые зрелые инструменты, но нет никаких ограничений, которые мешают вам использовать эти репозитории с другими технологиями. Взгляните на книгу Sonatype по управлению репозиториями, чтобы понять, как работают репозитории артефактов и как вы можете интегрировать их в свой рабочий процесс. sonatype.com/books/nexus-book - person M. Dudley; 15.07.2012
comment
Существует ли эквивалент Bintray с открытым исходным кодом? - person CMCDragonkai; 17.09.2014
comment
binary-repositories-comparison.github.io - person gavenkoa; 17.02.2017
comment
Ссылка на binary-repositories-comparison.github.io ведет на неработающую страницу. - person Kevin Alwell; 19.08.2019

С SVN + Apache (mod_dav_svn.so, mod_authz_svn.so), кажется, я получаю:

  • Анонимный доступ только для чтения по протоколу HTTP с широким спектром поддерживаемых клиентов для загрузки (wget/curl от GNU Make, задача для Apache Ant).
  • Простой в обслуживании доступ на запись для пользователей/групп (простой синтаксис):

    [repo:/path]
    user = rw
    

    через утилиту cadaver.

  • Интеграция с LDAP.

  • История релизов (когда, что и кто).
  • Атомарная операция (предотвращение одновременных выпусков и откат при ошибках).
person gavenkoa    schedule 22.11.2011