Лучшая практика для хранения зависимостей при автоматизации сборок для Java-приложений
Мы стремимся принять более дружественный к CI подход к управлению нашим локальным файловым сервером зависимостей jar или покончить с ним полностью для лучшей альтернативы. Сейчас это просто сервер Linux с некоторой формой файловой структуры, например:
http://server_name/vault/apache.org/axis/version_number/axis.jar
http://server_name/vault/apache.org/axis/version_number/jaxrpc.jar
http://server_name/vault/apache.org/axis/version_number/axis.jar
Интересно, какой стандарт принят корпоративной CI для управления этими зависимостями, когда вы выполняете автоматические сборки.
- Было бы неплохо хранить их в AWS S3?
- Существуют ли приложения, которые помогают управлять библиотекой зависимостей jar? (Ищите решения с открытым исходным кодом предпочтительно). Например, что-то похожее на то, где вы просто добавляете банку, которая вам нужна, и вытаскиваете ее с помощью API при сборке.
- Предполагая, что Apache Ant используется для построения проекта. И если это не очень хорошо в сфере CI, что будет хорошей альтернативой?
1 ответ
Я бы порекомендовал использовать Apache ivy для управления зависимостями вашей сборки. Ivy можно настроить для извлечения ваших зависимостей из репозиториев Maven, что в настоящее время является стандартом defacto для хранения двоичных файлов Java.
Maven Central является крупнейшим хранилищем двоичных файлов Java. Для размещения ваших личных двоичных файлов доступны различные готовые опции: Nexus, Artifactory или Archiva.