Installing MidPoint From Source Code

Last modified 27 Jun 2025 10:39 +02:00

This guide provides instructions on installing midPoint from the source code.

This installation requires software development tools and expertise to build the product. It is recommended only to engineers who want to participate in midPoint development or have a deeper interest in the source code. Other users should consider a simpler installation using a distribution package or containers.

MidPoint 4.0 and later

This guide applies to midPoint 4.0 and later. For older releases, see Release Notes.

Before You Start

There are few things to check before you start the installation:

  • Make sure to see the Release Notes for the list of environments that are known to work and for the list of known issues in the current release.

  • Make sure the System Requirements are met.

  • See Supported Platforms for MidPoint Deployment

  • Development versions of midPoint are not yet finalized. There may be unfinished features, bugs, instability, and a variety of other issues. Use them at your own risk.

Prerequisites

MidPoint is a Java application, therefore it requires a Java platform to run on. Java 21 is the recommended platform for MidPoint 4.9.3. Alternatively, Java 17 can be used. Other Java platform versions are not supported. Java platform distributions based on OpenJDK are recommended. Other JDK builds (e.g. Oracle) may work as well, but those have a limited support for midPoint (see the Release Notes for details).

The JAVA_HOME environment variable should point to the Java installation path.

Make sure you have the full Java Development Kit (JDK), not just the runtime environment (JRE). A full set of development tools is needed as you will be building midPoint from source code.

Git

The midPoint source is available in Git. You will need a suitable Git client software to clone the source code. Many operating systems include that as a standard package. For example, in Debian-based Linux systems, you can install Git using apt:

sudo apt install git

Maven

MidPoint source code is built using Apache Maven.

Download and install Maven3: http://maven.apache.org/download.html

The M2_HOME environment variable should point to the Maven installation path.

Installation

Getting The Source Code

MidPoint source code is hosted on GitHub:

GitHub project page

https://github.com/Evolveum/midpoint

Git repository HTTPS access

https://github.com/Evolveum/midpoint.git

Git repository SSH access

git@github.com:Evolveum/midpoint.git

Use your Git client to clone the source code tree. For example, in a Linux system, you can use the git command-line client:

git clone -b v4.9.3 https://github.com/Evolveum/midpoint.git

Running this command creates the midpoint directory containing the midPoint source code tree.

The -b option specifies the midPoint version. You can omit the option to get the latest development version of midPoint (master branch):

git clone https://github.com/Evolveum/midpoint.git

For more information about the source repository structure, see Source Code.

On Windows, it is highly recommended to add the following switch to the git clone command: --config core.autocrlf=false

You can also use this switch to disable autocrlf on other platforms because, while autocrlf works, it does not work well with midPoint projects. Don’t forget to adjust the project settings for your IDE accordingly (this is done automatically when using IntelliJ IDEA).

Alongside the master branch, there are also support branches. After each release, a respective support branch is created. It is a working snapshot that collects all bug fixes until another major release is finished.

These branches follow this naming: support-X.Y. For example, for the LTS release 4.8(.x), there is the support-4.8 support branch.

Building MidPoint

Go to the directory with the downloaded source code and execute the following command:

mvn install

A complete build process also includes unit and integration tests, and it may take more than one hour. You can speed up the build by skipping automatic tests using the following command:

mvn install -DskipTests=true

After a successful build process, you will find a binary distribution package located in the dist/target directory.

Building the WAR file only

If the WAR file is all you need, you can speed the build even further by skipping the packaging of the distribution archive. Use the following command to turn off the dist Maven profile:

mvn clean install -DskipTests=true -P -dist

Notice the minus character (-) before the profile name.
The resulting WAR file can be obtained from gui/admin-gui/target/midpoint.war.

Running MidPoint

Continue with the installation in the same way as for a binary release. See the Installing MidPoint Server From Distribution Package page and follow the instructions. However, instead of downloading a distribution package, you will use your own freshly built distribution package from the dist/target directory.

Next Steps

MidPoint is a comprehensive system, and the source code is extensive. If you plan to work with the midPoint source code, we strongly recommend getting an Integrated Development Environment (IDE). Most midPoint developers use IntelliJ IDEA, and there is a short guide to set up IntelliJ IDEA for midPoint development. Eclipse Java IDE can also be used.

MidPoint has to store its own data in a database, which we call repository. MidPoint stores all the data there: users, roles, shadow objects representing accounts, configuration, etc.

MidPoint needs a PostgreSQL database engine. PostgreSQL is a leading open source relational database engine. Since midPoint 4.4, midPoint can use features specific to PostgreSQL to its advantage (using a native PostgreSQL repository implementation).

MidPoint also supports other database engines. However, since midPoint 4.4, such support is deprecated. Do not use other database engines unless there are historic reasons, and you have a plan for migrating to PostgreSQL.

The Repository Configuration page provides the instructions.

If you plan to participate in midPoint development, see Development Participation. If you plan to contribute source code, the Code Contribution Guidelines page provides essential information.

Was this page helpful?
YES NO
Thanks for your feedback