Рекомендации по хранению зависимостей при автоматизации сборок для 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, что может быть хорошей альтернативой?

person alexfvolk    schedule 13.07.2015    source источник


Ответы (1)


Я бы рекомендовал использовать Apache ivy для управления зависимостями сборки. Ivy можно настроить для извлечения ваших зависимостей из репозиториев Maven, что в настоящее время является стандартом де-факто для хранения двоичных файлов Java.

Maven Central – крупнейший репозиторий двоичных файлов Java. Для размещения ваших приватных двоичных файлов существуют различные готовые варианты: Nexus, Artifactory или Архив

person Mark O'Connor    schedule 14.07.2015
comment
Есть ли способ разместить локальный репозиторий maven? - person alexfvolk; 14.07.2015
comment
@alexfvolk Да. Nexus, Artifactory или Archiva - person Mark O'Connor; 15.07.2015