我们编写了一个部署到JBoss AS的应用程序。我们目前有两个客户,一个运行JBoss EAP 6.1,另一个运行JBoss AS 7.1.1。我正在将构建系统从Ant转换为Maven。我的问题有两个部分。
在Maven中指定JBoss依赖项的最佳方法是什么?
我尝试过类似的事情:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
以及
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-ee</artifactId>
<version>7.1.1.Final</version>
<scope>provided</scope>
</dependency>
但这些不包括编译所需的所有传递依赖项。我们有一些JBoss相关的代码(可能不是最佳实践,我知道)。在Ant中,我们在编译时在类路径中包含特定的JBoss JAR(jboss-common-core-xxx.jar,jboss-ejb3-api_3.1_spec-xxx.jar等)。是否存在全部依赖关系,或者在使用标准EE代码之前,我是否仍然指定了各个依赖关系?
如何定位两个不同版本的JBoss?
JBoss在EAP 6.1和AS 7.1.1之间提供的库版本存在一些差异。例如,AS 7.1.1提供的JBoss-JMS-api_1.1_spec-1.0.0.Final.jar和EAP 6.1提供的JBoss-JMS-api_1.1_spec-1.0.1.Final-红帽-2.jar。
到目前为止,我一直在使用Maven个人资料
<profiles>
<profile>
<id>jboss-as-7.1.1.Final</id>
<dependencies>
...
</dependencies>
</profile>
<profile>
<id>jboss-eap-6.1</id>
<dependencies>
...
</dependencies>
</profile>
</profiles>
答案 0 :(得分:0)
尝试使用jboss BOM(物料清单),这样您就可以定义要使用的BOM版本,并确保获得正确版本的工件。
这篇文章将帮助您: Maven and JBoss: how to use BOMs to keep releases in sync