How to use BOM file with Maven?

MavenJboss

Maven Problem Overview


I have done considerable research in internet and I haven't found any easy explanation what to do with BOM files with Maven.

The problem is that I use JBoss 7.1.1 and I want to include all JBoss client jars in pom.xml. JBoss has a manual that says that I should use BOM files, but I don't know how to use it in my pom.xml.

Please help.

Maven Solutions


Solution 1 - Maven

A bom is a so called bill of materials - it bundles several dependencies to assure that the versions will work together. JBoss has boms for many of it's projects, including Arquillian and the JBoss AS itself.

There is an explanation of the bom usage in the maven docs - it is hidden well below.

A practical example:

You include the bom into your pom like this:

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

Then you do not have to specify the version attribute of a dependency, if it is defined in the bom like this:

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser2071995View Question on Stackoverflow
Solution 1 - MavenkostjaView Answer on Stackoverflow