Contributor guide
Prerequisites
-
git -
GraalVM with
native-imagecommand installed andGRAALVM_HOMEenvironment variable set, see Building a native executable section of the Quarkus documentation. -
If your are on Linux,
dockeris sufficient for the native mode too. Use-Pnative,dockerinstead of-Pnativeif 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.
mvnwavailable 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. |