Автоматическое развертывание проекта EAR без получения зависимостей из репозитория

Можно ли развернуть артефакт (.ear) в сервер приложений (AS) без получения его зависимостей из репозитория?

Позвольте мне объяснить: проект maven, который я пытаюсь настроить для развертывания в AS, имеет 3 модуля:

  1. Интернет (.war - внешний интерфейс)
  2. EJB (.ejb - задний конец)
  3. Сущность (.jar - классы сущностей)

Эти модули заключены в модуль EAR, и ни один из них не доступен в каком-либо хранилище (например, в Nexus или JFrog Artifactory). Когда я пытаюсь использовать плагин Cargo Maven или плагин JBoss Deployment Maven, оба уведомляют, что не могут разрешить зависимости для этих модулей.


ОБНОВЛЕНО (01/01/2019)

Эта проблема аналогична описанной в пунктах 6 и 7 следующей ссылки: http://webdev.jhuep.com/~jcs/ejava-javaee/coursedocs/content/html/ejb-basicex-eardeploy.html

1 ответ

Это обходной путь, но сработало. Вместо того, чтобы проект зависел от внутреннего репозитория (например, Nexus или JFrog Artifactory), можно определить папку как репозиторий на локальной машине, используя параметр Maven. -Dmaven.repo.local, Таким образом, плагин для развертывания артефакта также может использовать это свойство и для получения других артефактов.

То есть для сборки приложения на текущей папке:

mvn -Dmaven.repo.local=. package

Развернуть приложение (.ear(в данном случае) с помощью плагина Cargo Maven, например, вне зависимости от внутреннего репозитория:

mvn -pl app-ear/ -Dmaven.repo.local=. cargo:redeploy

OBS: Использование maven.repo.local свойство, папка, определенная как значение, будет заполнена всеми зависимостями проекта. В моем случае это не проблема, потому что эти команды использовались в конвейере непрерывной интеграции, а все файлы и папки отбрасывались в финале.

Другие вопросы по тегам