如何使用Maven来定位不同版本的JBoss

时间:2014-02-07 15:47:42

标签: maven jboss

我们编写了一个部署到JBoss AS的应用程序。我们目前有两个客户,一个运行JBoss EAP 6.1,另一个运行JBoss AS 7.1.1。我正在将构建系统从Ant转换为Maven。我的问题有两个部分。

  1. 在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代码之前,我是否仍然指定了各个依赖关系?

  2. 如何定位两个不同版本的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>
    
  3. 但是,我不是JBoss专家。 JBoss本身是否提供了一些我没有看到的更好的解决方案?

1 个答案:

答案 0 :(得分:0)

尝试使用jboss BOM(物料清单),这样您就可以定义要使用的BOM版本,并确保获得正确版本的工件。

这篇文章将帮助您: Maven and JBoss: how to use BOMs to keep releases in sync