2014-09-03 24 views
12

我正在开发一个项目以部署到Wildfly,我正在使用Maven构建它。这是多次战争/ JAR/EAR文件的一个复杂的项目,所以有与在它下面的一个父的pom.xml:如何在Maven中正确使用Wildfly的罐子?

... 
<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 

但它不是由为蜻蜓推荐的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

现在,在WildFly boms 10.1.0.CR1和更新版本中管理cxf-core(在cxf的第3版中替换cxf-api)。 – ctomc 2016-08-04 17:19:13

回答

12

WildFly的BOM(又名材料在其原始版本的JBoss的比尔)是一组用于提高相关项目的部署,并以某种方式自动化他们的测试依赖。它不幸地包括在WildFly核心中使用的依赖关系,即应用服务器。

的pom.xml(项目描述),你真的需要进口只是你做你的物料清单 POM文件是WildFly parent pom的方式。因此,只要将其导入到自己的项目的POM,你将有你的依赖条件transitevelly解决:

<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,只是拿起满足您的需求是稳定的标签。

+0

谢谢!我是否使用这个代替原始BOM或除此之外还使用它? – EdwinW 2014-09-09 02:44:32

+2

只要保持两者,这绝对没有缺点。如果您对此表示满意,请不要忘记接受该答案;) – tmarwen 2014-09-09 08:20:43

+0

谢谢,只是要尝试一下,完美地工作。 – EdwinW 2014-09-11 18:53:45