我正在开发一个部署到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>
...
不幸的是,上面的BOM不包含我知道的默认Wildfly 8.1.0.Final发行版中的各种jar文件。特别是,这个问题的原因是cxf-api jar文件。我知道它位于Wildfly的这个位置:
wildfly-8.1.0.Final/modules/system/layers/base/org/apache/cxf/main/cxf-api-2.7.11.jar
但它不是由为Wildfly推荐的BOM管理的。
我如何正确地将cxf-api和类似的jar文件添加到项目的pom.xml中,最好不必单独指定每个?当然,我可以这样做:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-api</artifactId>
<version>2.7.11</version>
<scope>provided</scope>
</dependency>
但我真的不必为已经属于Wildfly的每个jar文件执行此操作。
我是否可以导入BOM?
答案 0 :(得分:15)
WildFly BOM (在其原始版本中称为JBoss Bill of Materials)是一组依赖项,用于增强相关项目的部署并以某种方式自动化其测试。遗憾的是,它包含 WildFly 核心中使用的依赖项,即Application Server。
pom.xml (项目描述符),您真正需要导入 BOMs pom文件的方式是WildFly parent pom。因此,只需将其导入您自己的项目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>
查看目标 WildFly 版本中使用的Apache CXF version,然后选择符合您需求的稳定代码。