Camel Maven Plugin

The Camel Maven Plugin allows you to run your Enterprise Integration Patterns using Spring for Dependency Injection inside Maven.

Goals Supported

Documentation Goal Description

camel:run

camel:run

Boots up Camel in the context of a separately initiated Java thread using the Spring configuration at META-INF/spring/.xml* and runs your routing rules. From Camel 2.10 onwards also OSGi blueprint is supported to load from OSGI-INF/blueprint/.xml* (requires to configure the plugin to use blueprint).

Adding the plugin to your pom.xml

Add the following in your <build><plugins> section

You may override the default Spring application context file uri META-INF/spring/.xml* by using the applicationContextUri property in the camel-maven-plugin configuration. Paths may be split using a semi-colon (;).

<plugin>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-maven-plugin</artifactId>
  <configuration>
    <applicationContextUri>META-INF/spring/*.xml;YOUR_FILE_NAME_IN_THE_CLASS_PATH.xml</applicationContextUri>
  </configuration>
</plugin>

You can also specify what Main class to use when running the plugin. By default this is org.apache.camel.spring.Main.

<plugin>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-maven-plugin</artifactId>
  <!-- optional, default value: org.apache.camel.spring.Main -->
  <configuration>
    <mainClass>mypackage.boot.camel.CamelStartup</mainClass>
  </configuration>
</plugin>

File based spring configuration files

From Camel 1.4 onwards loading Spring context files via a file location is also supported. You configure this with the fileApplicationContextUri option. Paths may be split using a semi-colon (;). This sort of file location is useful for web application projects that store spring configuration files in WEB-INF. It can also be used to replace configuration that requires an OSGi container with an equivalent non-OSGi configuration.

<plugin>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-maven-plugin</artifactId>
  <configuration>
    <fileApplicationContextUri>
      src/main/webapp/WEB-INF/camel*.xml;
      src/test/spring/test-context.xml
    </fileApplicationContextUri>
  </configuration>
</plugin>