如何在 Maven 中使用 BOM 文件?

Posted

技术标签:

【中文标题】如何在 Maven 中使用 BOM 文件?【英文标题】:How to use BOM file with Maven? 【发布时间】:2013-01-30 06:18:54 【问题描述】:

我在互联网上进行了大量研究,但没有找到任何简单的解释如何使用 Maven 处理 BOM 文件。

问题是我使用的是 JBoss 7.1.1,我想在 pom.xml 中包含所有 JBoss 客户端 jar。 JBoss 有一本手册说我应该使用 BOM 文件,但我不知道如何在我的pom.xml 中使用它。

请帮忙。

【问题讨论】:

你是说 .pom 文件吗?能否提供本手册的链接? 【参考方案1】:

bom 是所谓的材料清单 - 它捆绑了多个依赖项以确保版本能够协同工作。 JBoss 的许多项目都有 bom,包括 Arquillian 和 JBoss AS 本身。

the maven docs 中有对 bom 用法的解释 - 它隐藏在下面。

一个实际的例子:

你像这样将 bom 包含到你的 pom 中:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.jboss.bom</groupId>
            <artifactId>jboss-javaee-6.0-with-tools</artifactId>
            <version>$javaee6.with.tools.version</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement> 

那么你不必指定依赖的version属性,如果它在bom中定义如下:

<dependency>
    <groupId>javax.enterprise</groupId>
    <artifactId>cdi-api</artifactId>
    <scope>provided</scope>
</dependency>

【讨论】:

事实上,一旦你安装了 Jboss,你可以找到 jboss-eap-6.0\bin\client\jboss-client.jar 在同一个文件夹中有 readme.txt C:\jboss-eap-6.0\ bin\client\README.txt @Reddymails - 是的,这可能是 OP 不知道如何解释的手册。很好的发现。 顺便说一句,另一个有用的指针:Maven and JBoss: how to use BOMs to keep releases in sync

以上是关于如何在 Maven 中使用 BOM 文件?的主要内容,如果未能解决你的问题,请参考以下文章

在不同BOM版本共存的情况下,如何做好BOM管理,防止文件混乱。

导入物料清单中使用的 maven 属性(bom)

Maven中BOM

maven之BOM及BOM和provided的一个小坑

如何使用C ++消除记事本.txt文件中的BOM? [重复]

python带bom的utf-8-sig如何去掉bom