--- <% attributes("title") = "Building ServiceMix" %> title: Building ServiceMix --- name:content pipeline:markdown # Building ServiceMix From Source ServiceMix uses [Maven](http://maven.apache.org/) as its build and management tool. We have tested the build with Maven 2.0.8 and it works fine, but Maven 2.0.9 is known to cause some issues that prevent a successful build for ServiceMix 3.2.1 and previous versions. This has been fixed for 3.2.2 and 3.3. ServiceMix 4.x requires to use Maven 2.2.1 or better. ## Getting started * Download and [install Maven](http://maven.apache.org/download.html#Installation). * Get the latest code [from SVN](source.html). * Build the code with the following command {pygmentize:: text} mvn -Dmaven.test.skip=true -Pstep1 install mvn -Dmaven.test.skip=true -Pstep2 install {pygmentize}

Useful Hints

Please Note

There is an issue in building if you use the system property style of declaring the profiles (i.e., -Dprofile=step2) as the XFire Maven plugin thinks step2 is a profile name it should use. This is fixed in the ServiceMix trunk (3.3 or greater). To work around this issue, try the following items below:

Next time you build, you can just run {pygmentize:: text} mvn -Dmaven.test.skip=true install {pygmentize}

Building 3.1.1

If an out of memory error is encountered when building 3.1.1, setting the following environmental variable may help

MAVEN_OPTS=-Xmx768m

Building 3.0-M1 and 3.0-M2

Note that this only works for versions from 3.0-M3.

To build previous versions, you need to run:

{pygmentize:: text} mvn -N install cd tooling mvn install -Dmaven.test.skip=true cd .. mvn install -Dmaven.test.skip=true {pygmentize}
## Code Conventions Checkstyle and PMD rules are used to scour the ServiceMix source code when performing a build. If you are hacking code and it does not follow these conventions, the build will fail. To make things easier on folks who are using Eclipse, there is an [Eclipse code convention profile](http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/build/src/main/resources/smx-eclipse-code-conventions.xml?view=markup) that matches the Checkstyle conventions, making things a bit easier in this regard. Import this profile into Eclipse under **Preferences->Java->Code Style->Formatter->Import**. ## Using an IDE ### Using Eclipse For [Eclipse](http://www.eclipse.org/), a detailed description is given at [Importing ServiceMix into Eclipse](importing-servicemix-into-eclipse.html). In addition, this page also describes how to start ServiceMix inside Eclipse with all debugging possibilities. ### Other IDEs Any modern IDE with self respect can start a new project based on a Maven `pom.xml` file. Note that you may need to build the whole ServiceMix project once using maven. Please refer to the [Maven plugin reference](http://maven.apache.org/plugins/index.html) for more details on using them.