You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 73 Next »

Building Camel from Source

Camel uses Maven as its build and management tool. If you don't fancy using Maven you can use your IDE directly or Download a distribution or JAR.

Prequisites

Required:

  • Download and install Maven.
    (Maven [3.0.2,3.1.0) is required to build Camel 2.10 onwards).
    (Maven [3.0.4,3.1.0] is required to build Camel 2.11 onwards).
  • Get the latest Source
  • Java
    1.6 to build Camel until 2.13.x (Java 1.7 is supported from Camel 2.10 onwards)
    1.7 to build Camel 2.14.0 onwards (Java 1.8 is supported from Camel 2.14 onwards)

Optional:

  • Prince should be in the executable PATH to generate the PDF documentation

Maven options

To build camel maven has to be configured to use more memory

Unix/Linux/Mac
export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=512m"
Windows
set MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=512m

A normal build

mvn clean install

A normal build without running tests

mvn clean install -Pfastinstall

A normal build without running tests but checkstyle verification enabled

mvn clean install -Pfastinstall,sourcecheck

Doing a Quick Build

Available as of Camel 2.6

The following skips building the manual, the distro and does not execute the unit tests.

mvn install -Pfastinstall

Using an IDE

If you prefer to use an IDE then you can auto-generate the IDE's project files using maven plugins. e.g.

IntelliJ

mvn idea:idea

Eclipse

There are several ways to import the projects into Eclipse.

m2e

Starting with Camel 2.14.0, Camel can be imported into Eclipse using m2e Maven integration.

Before you start: It is important to run Eclipse with at least 1.5 GB of heap memory, otherwise the import process will fail. To increase the heap size, edit the "eclipse.ini" file and set the -Xmx parameter as follows:

eclipse.ini
[...]
-Xmx1536m
Cloning the Git Repository 

Either follow instructions about getting the latest source, or clone the Git repository with Eclipse by selecting "File -> Import -> Git / Projects from Git" and "Clone URI". Provide all repository details in the import wizard and clone the repository into a directory outside of the Eclipse workspace. Once cloning has completed, exit the import project wizard (i.e. simply select cancel when asked to select "Wizard for project import").

Import Maven Projects

Import Camel projects as Maven projects using m2e by selecting "File -> Import -> Maven -> Existing Maven Projects". Point the wizard to the root directory of the cloned repository. Eclipse will analyze all Camel projects and eventually present the following summary:

Simply confirm the import of all projects by clicking "Finish". The import process will create Eclipse projects and automatically set up build paths using dependency details provided by the pom.xml files. Once completed, all Camel projects will be available in your workspace:

maven-eclipse-plugin

The maven-eclipse-plugin can be used to generate the .classpath/.project/.settings file that Eclipse need. To do this, run:

mvn process-test-sources eclipse:eclipse

or

mvn -Psetup.eclipse -Declipse.workspace.dir=/path/to/your/workspace

The latter is recommended as it would completely setup the workspace for you as well as provide options to wire in other projects also found in your workspace.

After running the above command, from within Eclipse, do "File -> Import -> Existing Projects into Workspace", select the root camel checkout location and Eclipse should find all the projects.

Adding Camel Eclipse templates to your workspace

The above mentioned setup.eclipse profile does a few additional things to your workspace:

  1. Adds the Camel code templates (see here)
  2. Sets the M2_REPO variable in the workspace that points to your local Maven repository (i.e., ~/.m2/repository on Unix and c:\Documents and Settings\<user>\.m2\repository on Windows) which allows the jars to be resolved.
Hint: specify the workspace location in your .m2/settings.xml

You can add a profile to your .m2/settings.xml to specify your eclipse workspace location so you can avoid having to type that each time you need to update the projects.

<profiles>
    <profile>
        <id>setup.eclipse</id>
        <properties>
            <eclipse.workspace>/path/to/your/workspace</eclipse.workspace>
        </properties>
    </profile>
</profiles>

Building with checkstyle

To enable source style checking with checkstyle, build Camel with the -Psourcecheck parameter

mvn -Psourcecheck clean install

Building source jars

If you want to build jar files with the source code, that for instance Eclipse can important so you can debug the Camel code as well. Then you can run this command from the camel root folder:

mvn clean source:jar install -Pfastinstall

Building with Spring 3.0

Support for Spring 3.0 is deprecated from Camel 2.11 onwards.

From Camel 2.11.0 onwards, if you want Camel to be build against Spring 3.0 you have to build with the maven profile spring3.0.

mvn clean install -Pspring3.0

Building with Spring 3.1

From Camel 2.10.0 onwards, if you want Camel to be build against Spring 3.1 you have to build with the maven profile spring3.1.

mvn clean install -Pspring3.1

From Camel 2.11.0 onwards, Spring 3.1 is the default.

Note: the camel-test-spring component requires to be built with Spring 3.1.

Building with Spring 3.2

From Camel 2.11.0 onwards, if you want Camel to be build against Spring 3.2 you have to build with the maven profile spring3.2.

mvn clean install -Pspring3.2

From Camel 2.12.0 onwards, Spring 3.2 is the default.

 

Building with Spring 4.0

From Camel 2.13.0 onwards, if you want Camel to be build against Spring 4.0 to work around the back compatible issue CAMEL-7074, you have to build with the maven profile spring4.

mvn clean install -Pspring4

From Camel 2.12.0 onwards, Spring 3.2 is the default.

Working with features

If you change anything in the features.xml from platform/karaf you can run a validation step to ensure the generated features.xml file is correct. You can do this running the following maven goal from the platform directory.

mvn clean install -Pvalidate

Executing unit tests using Ekstazi

Normally, when you execute the unit tests during your development cycle for a particular component, you are executing all the tests each time. This may become inefficient, when you are changing one class and the effect of this change is limited within the component having many unit tests. Ekstazi is a regression testing tool that can keep track of the test results and the changed classes so that unaffected tests can be skipped during the subsequent testing. For more details of Ekstazi, please refer to the Ekstazi page at http://www.ekstazi.org.

To use Ekstazi, you can run the tests with the maven profile ekstazi.

mvn test -Pekstazi

See Also

  • No labels