Использование Maven для получения EJB из удаленного репозитория - PullRequest
0 голосов
/ 20 июня 2020

Мы разделили конвейеры сборки и тестирования на две работы. Один создает, запускает модульные тесты и проверки качества, а затем развертывает артефакты в удаленном репозитории. Тестовое задание выполняется отдельно, так как интеграция и сквозные тесты займут много времени. Это приложение EJB, и мы используем Maven 3 для запуска сборок и тестов, и все управляется с помощью Jenkins.

Проблема, с которой мы сталкиваемся, заключается в том, что нет четкого способа загрузить последний файл EJB. Мы пробовали Maven dependency: get , но это просто обновляет ваш локальный кеш. Даже в этом случае по умолчанию используется JAR, и когда мы указываем EJB, он сообщает, что «1 необходимый артефакт отсутствует». Вот пример вызова:

mvn dependency:get -X -Dartifact=com.company.group:ProjectName:LATEST:ejb -DremoteRepositories=https://thatTeamsRepoHost/artifactory/mvn-release

Мы можем перейти к репозиторию артефактов и проверить, есть ли там EJB-файл со связанным с ним POM.

Даже если мы заставим это работать, единственный способ получить это в нашей рабочей области - использовать dependency: copy , потому что только это позволяет нам определить outputDirectory . Это то, что мы надеемся назвать следующим:

mvn dependency:copy -Dartifact=com.company.group:ProjectName:LATEST:ejb -DoutputDirectory=./artifact

Кто-нибудь знает более чистый и простой способ получить последнюю версию файла EJB команды из их удаленного репозитория Maven? Мы идем по неправильному пути? Если нет, то что мы делаем не так с dependency:get?

Мы открыты для альтернативных решений, которые мы можем вызвать из командной строки Unix (например, сценарий оболочки) или поместить в файл POM для запуска Maven . Использование плагинов Jenkins также может быть вариантом, но мы должны получить его одобрение корпоративных команд, владеющих настройкой Jenkins, поэтому это наименее предпочтительный вариант.

...