Как правильно использовать банки из Wildfly в Maven?
Я работаю над проектом для развертывания в Wildfly, и я использую Maven для его создания. Это сложный проект с несколькими файлами war/jar/ear, поэтому в нем есть родительский pom.xml со следующим:
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>jboss-javaee-7.0-with-all</artifactId>
<version>8.1.0.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
...
</dependencies>
</dependencyManagement>
...
К сожалению, указанная выше спецификация не включает различные файлы jar, которые, как я знаю, находятся в стандартном дистрибутиве Wildfly 8.1.0.Final. В частности, причиной этого вопроса является файл cxf-api jar. Я знаю, что он находится в этом месте в Wildfly:
wildfly-8.1.0.Final/modules/system/layers/base/org/apache/cxf/main/cxf-api-2.7.11.jar
но он не управляется спецификацией, рекомендованной для Wildfly.
Как правильно добавить cxf-api и аналогичные файлы jar в проект pom.xml, желательно без указания каждого из них отдельно? Конечно, я мог бы сделать что-то вроде этого:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-api</artifactId>
<version>2.7.11</version>
<scope>provided</scope>
</dependency>
но мне действительно не нужно было делать это для каждого файла jar, который уже является частью Wildfly.
Нет ли спецификации, которую я могу импортировать?
Ответы
Ответ 1
Спецификации WildFly (также известный как JBoss Bill of Materials в оригинальной версии) представляет собой набор зависимостей, используемых для расширения развертывания зависимых проектов и автоматизации в некотором роде их тестов. К сожалению, это не относится к зависимостям, используемым в ядре WildFly, то есть к серверу приложений.
. pom.xml(дескриптор проекта), который вам действительно нужно импортировать именно так, как вы делали для вашего pOM файла BOM, является родительский pom WildFly. Так что просто импортируйте его в свой собственный проект pom, и у вас будут решаться ваши проблемы:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-parent</artifactId>
<version>8.1.0.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Оформить версию Apache CXF, используемую в целевой версии WildFly, и просто подобрать устойчивые теги, соответствующие вашим потребностям.