2014-09-03 25 views
12

Tôi đang làm việc trên một dự án để triển khai cho Wildfly và tôi đang sử dụng Maven để xây dựng nó. Đây là một dự án phức tạp với nhiều file chiến tranh/jar/tai, vì vậy có một pom.xml mẹ những điều sau đây nó:Làm thế nào để sử dụng lọ từ Wildfly một cách chính xác trong Maven?

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

Thật không may, trên BOM không bao gồm file jar khác nhau mà tôi biết là trong mặc định Wildfly 8.1.0.Final distribution. Đặc biệt, nguyên nhân của câu hỏi này là tệp cxf-api jar. Tôi biết nó nằm tại vị trí này trong Wildfly:

wildfly-8.1.0.Final/modules/system/layers/base/org/apache/cxf/main/cxf-api-2.7.11.jar 

nhưng nó không được BOM quản lý cho Wildfly.

Làm cách nào để chính xác thêm cxf-api và các tệp jar tương tự vào tệp pom.xml của dự án, tốt nhất là không phải chỉ định từng tệp riêng lẻ? Chắc chắn, tôi có thể làm một cái gì đó như thế này:

<dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-api</artifactId> 
    <version>2.7.11</version> 
    <scope>provided</scope> 
</dependency> 

nhưng tôi thực sự không phải làm điều này cho mỗi và mỗi tệp jar đã là một phần của Wildfly.

Không có BOM nào mà tôi có thể nhập không?

+0

cxf-core (trong phiên bản 3 của cxf thay thế cxf-api) hiện được quản lý trong phiên bản WildFly boms 10.1.0.CR1 và phiên bản mới hơn. – ctomc

Trả lời

12

BOMs WildFly (aka JBoss Tuyên ngôn Nhân Vật trong phiên bản gốc của nó) là một tập hợp các phụ thuộc sử dụng để tăng cường triển khai các dự án phụ thuộc và tự động hóa theo cách một số xét nghiệm của họ. Rất tiếc, nó không bao gồm các phụ thuộc được sử dụng trong WildFly lõi, tức là Máy chủ ứng dụng.

Các pom.xml (mô tả dự án) mà bạn thực sự cần phải nhập khẩu chỉ là cách bạn đã làm cho BOMs bạn tập tin pom là WildFly parent pom. Vì vậy chỉ cần nhập nó vào pom dự án của riêng bạn và bạn sẽ có dependecies bạn transitevelly giải quyết:

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

Thanh toán các Apache CXF version được sử dụng trong các mục tiêu WildFly phiên bản và chỉ cần nhấc các thẻ ổn định phù hợp với nhu cầu của bạn.

+0

Cảm ơn! Tôi có sử dụng điều này thay vì, hoặc ngoài, BOM ban đầu? – EdwinW

+2

Chỉ cần giữ cho cả hai, hoàn toàn không có nhược điểm về điều đó. Đừng quên chấp nhận câu trả lời nếu bạn không hài lòng;) – tmarwen

+0

Cảm ơn bạn, hãy thử nó, làm việc một cách hoàn hảo. – EdwinW

Các vấn đề liên quan