Red Hat Training

A Red Hat training course is available for Red Hat Fuse

Chapter 11. Building a FAB


A FAB is essentially a JAR file built using Maven, where the Maven pom.xml file declares the complete set of dependencies for the JAR.

11.1. Generating a FAB Project

Generating FAB projects with Maven archetypes

To help you get started quickly, you can invoke a Maven archetype to generate the initial outline of a Maven project (a Maven archetype is analogous to a project wizard). Because FABs do not require any special configuration (apart from the presence of a pom.xml file, which is always present in a Maven-generated JAR), you can use almost any Maven archetype, as long as the generated Maven project has the jar packaging type.


The following Maven archetypes are useful for generating Apache Camel projects:
Demonstrates a route defined using the Java DSL.
Demonstrates a route defined using the XML DSL in an OSGi blueprint file.
Demonstrates how to use a message broker in a route.
Demonstrates how to define a custom Apache Camel component.

camel-archetype-blueprint archetype

For example, consider an archetype for building an Apache Camel project. The camel-archetype-blueprint archetype creates a project that demonstrates a simple Apache Camel route written in the XML DSL using the Blueprint injection framework. To generate a Maven project with the coordinates, GroupId:ArtifactId:Version, enter the following command:
mvn archetype:generate
The arguments to the mvn command are shown on separate lines purely for the sake of readability. When you are entering the command at a command prompt, you must ensure that all of the parameters are on the same line.

Building the FAB

The archetype creates a project in a new directory whose name is that of the specified artifact ID, ArtifactId. To build the FAB defined by the new project, open a command prompt, go to the project directory (that is, the directory containing the pom.xml file), and enter the following Maven command:
mvn install
The effect of this command is to compile all of the Java source files, to generate a FAB JAR under the ArtifactId/target directory, and then to install the generated JAR in the local Maven repository.