Предоставленные JBoss библиотеки в управляемом Maven приложении Java EE - PullRequest
3 голосов
/ 23 марта 2012

Это на самом деле довольно маловероятно для меня, но кажется, что нет прямого ответа по сети об импорте предоставляемых JBoss зависимостей в управляемое Maven приложение Java EE для развертывания в нем.

AFAIK естьДве вещи, так или иначе связанные с этой проблемой, это jboss-as-client артефакт для внешних (в смысле JVM) клиентов JBoss и jboss-as-component-matrix артефакт с огромным <dependencyManagement> блоком, определяющим версию библиотек, которые использует JBoss.Последний артефакт довольно полезен, поскольку я могу использовать область импорта Maven, чтобы правильно настроить все версии.Тот, который отсутствует (AFAIK), что-то вроде jboss-as-client, но для развернутого приложения Java EE.Что-то, от чего я могу зависеть от provided scope и иметь все вещи в пути к классам, включая связанные с платформой API (например, EJB или JMS) и AS-специфические вещи (например, EJB-ext или jboss-messaging) и, возможно, некоторые другиевещи из lib, lib/endorsed и (в основном) common/lib каталогов.Я знаю, что, вероятно, лучшей практикой (и совместимой с религией) было бы явное использование зависимостей, используемых в модулях, но способ, о котором я спрашиваю, гораздо более прагматичен для меня (извините), по крайней мере для приложений Java EE, которые действительно используютмного стандартных API.

Мне действительно любопытно, как вы справляетесь с такой проблемой.Я использую 5.1.0.GA версию AS.

Ответы [ 2 ]

4 голосов
/ 13 апреля 2012

Вы должны предоставить свой собственный (инфраструктурный) проект maven, который просто упаковывает все упомянутые зависимости, и все ваши проекты JBoss зависят от этого инфраструктурного проекта с областью действия provided.

Но не следует ли вам просто скомпилироватьпротив спецификации jar вместо конкретной реализации?
Как

<dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-6.0</artifactId>
    <version>1.0.0.Final</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

Перейти к первому появлению "Java EE 6 API" на http://arquillian.org/guides/getting_started/.

0 голосов
/ 15 апреля 2012

Вам не понравится этот ответ, но поскольку библиотеки предоставляются JBoss во время выполнения, кроме использования области действия provided, это не ваше дело.Классы любой неустановленной транзитивной зависимости будут загружаться другим загрузчиком классов (предположительно) и прекрасно работать вместе с классами приложения.

Для не очень хороших связанных классов то, что @MichalKalinowski сказал, верно.

...