Автоматическое развертывание проекта EAR без получения зависимостей из репозитория - PullRequest
0 голосов
/ 28 декабря 2018

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

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

  1. Web (.war - передний конец)
  2. EJB (.ejb - задний конец)
  3. Entity (.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#ejb-basicex-eardeploy-testmodule

1 Ответ

0 голосов
/ 04 января 2019

Это обходной путь, но сработало.Вместо того, чтобы проект зависел от внутреннего репозитория (например, 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 папка, определенная как значение, будет заполненасо всеми зависимостями проекта.В моем случае это не проблема, потому что эти команды использовались в конвейере непрерывной интеграции, а все файлы и папки удаляются в финале.

...