Contributor guide

Prerequisites

  • git

  • GraalVM with native-image command installed and GRAALVM_HOME environment variable set, see Building a native executable section of the Quarkus documentation.

  • If your are on Linux, docker is sufficient for the native mode too. Use -Pnative,docker instead of -Pnative if you choose this option.

  • Java 11 for Camel Quarkus < 3.0.0 and then Java 17 for Camel Quarkus >= 3.0.0

  • Maven 3.8.2+ (unless you use the Maven Wrapper, a.k.a. mvnw available in the source tree).

How to build

Checkout the code

git clone https://github.com/apache/camel-quarkus.git
cd camel-quarkus

A fast build without tests and various checks:

mvn clean install -Dquickly

A build with integration tests in the JVM mode only:

mvn clean install

A build with integration tests in both the JVM mode and the native mode:

mvn clean install -Pnative
You may want to install and use mvnd - the Maven Daemon for faster builds. When using mvnd on MacOS, make sure the mvnd version matches your installed Maven version (mvn) to avoid compilation failures due to missing dependencies.
For building native images on MacOS, you usually do not need to use -Dquarkus.native.container-build. This option is primarily intended for Linux systems, where the native image build runs inside a Docker container. On MacOS, GraalVM can typically generate the native image directly, so omitting this option simplifies the build and avoids unnecessary errors.
Extensions that depend on Java AWT are not yet supported for native image generation on MacOS. If an integration test fails when running mvnd clean install -Dnative due to missing AWT support, this is expected and not necessarily a problem with your environment. Running the same test in JVM mode (mvn clean install) should work correctly.