This document is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/4.0/
This guide provides instructions for building Harmony eDelivery Access from source. The build process can produce two types of artifacts:
- Debian packages (
.deb) for installing Access Point and SMP on Ubuntu 22.04, and 24.04. - A multi-platform Docker image for deploying the Access Point.
- Docker: Creates a consistent environment for generating both the Debian packages and the final Docker image, making the build process independent of your host system. Docker Desktop or Engine (version 20.10 or newer) must be installed.
- For native builds only:
- An Ubuntu host (22.04 or 24.04).
- OpenJDK / JDK (version 8 or compatible).
- Maven.
- Standard build tools like
gcc.
Check out the harmony-common, harmony-access-point, and harmony-smp repositories into the same base directory. The build scripts rely on the following folder structure:
- <BASE_DIR>
|-- harmony-access-point
|-- harmony-common
|-- harmony-smp
This process compiles the source code for both Access Point and SMP and packages them into .deb files for Ubuntu.
This host-agnostic method uses a Docker container to compile the code and build the packages.
- Navigate to the
harmony-commondirectory. - Run the build script with the
-dflag:./build_packages.sh -d
- To speed up the build by skipping the test execution, add the
-sflag:./build_packages.sh -d -s
This method compiles the code directly on the host system.
- Ensure you are on a supported Ubuntu version.
- Navigate to the
harmony-commondirectory. - Run the preparation script once to install all necessary dependencies on your machine. The script will ask for your
sudopassword to install packages../prepare_buildhost.sh
- Run the build script:
./build_packages.sh
- To skip tests, use the
-sflag:./build_packages.sh -s
Once the script finishes, the compiled Java artifacts (.war files) will be in the target directories of their respective projects, and the generated .deb packages will be located in the harmony-common/packaging/build/ directory, organized by Ubuntu version (ubuntu2X.04).
After completing Step 1, the necessary Java artifacts are ready to be packaged into a Docker image. This image is multi-platform (linux/amd64 and linux/arm64).
- Ensure you are in the
harmony-commondirectory. - Run the Docker build script located in the
packagingfolder:./packaging/build-docker.sh
- The script will automatically assign a tag to the image based on the version defined in
_build_common.sh. You can specify a custom tag using the-tflag:./packaging/build-docker.sh -t <custom-tag>
After the build is complete, the new Docker image will be available in your local Docker image repository. You can check for it by running docker images.