Ответ 1
A bom
- это так называемая спецификация материалов - она связывает несколько зависимостей, чтобы гарантировать, что версии будут работать вместе. JBoss имеет boms для многих из его проектов, в том числе Arquillian и JBoss AS.
Существует объяснение использования bom
в maven docs - оно скрыто значительно ниже.
Практический пример:
Вы включаете бомбу в свой 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>
Тогда вам не нужно указывать атрибут версии зависимости, если он определен в bom
следующим образом:
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<scope>provided</scope>
</dependency>