Ответ 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, когда это возможно.