Подтвердить что ты не робот

Лучшая практика для загрузки сторонних JAR в автономном развертывании JBoss AS7?

Какова наилучшая практика для загрузки сторонних JAR в автономном развертывании JBoss-as-7.0.x?

Я пробовал:

  • развертывание каждого JAR в качестве независимого модуля с его собственным module.xml desriptor;
  • развертывание JAR в каталоге WEB-INF/lib WAR;
  • и каталог foo.ear/lib для любых JAR, разделяемых между несколькими WAR.

Очевидным преимуществом подхода 1. выше является сокращение объема памяти во время развертывания по сравнению с оценкой 2. и подход 3. Однако представляется довольно сложным поддерживать в качестве каждой зависимости, что JAR должен быть явно определен в module.xml, который не выглядит очень удобным для работы с большим количеством сторонних библиотек.

4b9b3361

Ответ 1

Для более мелких зависимостей, которые являются закрытыми для развертывания, сохраните их в WEB-INF/lib в .war, для чего он нужен. Если вы используете Maven, который должен быть в значительной степени автоматическим и прозрачным для чего-либо в < compile/ > сфера.

Для больших, сложных зависимостей или зависимостей, которые будут использоваться несколькими приложениями, используйте параметр (4):

Разверните каждую логическую библиотеку (например, "OpenJPA" или "Log4J" ) в качестве модуля, включая его банки api и impl и любые JAR-зависимости, которые еще не предоставлены другими модулями AS7. Если уже модуль добавляет к нему зависимость, а не добавляет JAR в ваш модуль. Если несколько разных библиотек имеют общие зависимости, разделите их на модули и добавьте их в качестве зависимостей модулей в module.xml.

Используйте jboss-deployment-structure.xml для развертывания .war/.ear/независимо от объявления зависимости от модуля, если он не автоопределяется и не загружается автоматически.

Я считаю, что это подход с низкой до низкой, который хорошо работает. Это больше хлопот, чем сбрасывать все в WEB-INF/lib внутри развертывания, что является стандартом Java EE. Он ускоряет перераспределение и экономит много времени на развертывание/тестирование, уменьшая конфликты классов и версий.

Вы можете использовать Maven и плагин maven-dependency для создания модулей с уже включенными транзитивными зависимостями, если вы готовы немного поработать. Вы можете увидеть один пример этого в модуле который я написал для интеграции EclipseLink в AS 7. Я могу автоматизировать создание модулей AS7, когда это возможно.