В настоящее время мы используем 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. Также приятно слышать о недостатках и ограничениях.
ОБНОВЛЕНИЕ