2014-09-03 25 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