There are multiple strategies to build, customize and deploy Evolveum's midPoint. The midPoint GUI web application can be downloaded independently and put inside a servlet container such as Apache Tomcat. In newer versions of midPoint, you can also simply run the web application using an embedded Apache Tomcat servlet container, customized and managed by the underlying Spring Boot framework.
Of course, deployment scenarios and use cases are not always so simple. You might need customizations that require you to develop extensions or modifications of some core midPoint component. In these situations, using an overlay project offers the most advantages. Overlays are a strategy to combat repetitive code and/or resources. Rather than downloading the entire codebase and building from source, overlays allow you to download a pre-built vanilla midPoint web application provided by the project itself and override/insert specific behavior into it. The customizations may be configuration files, web resources (HTML, CSS, images) and even Java code. As such, the overlay contains only the customized files and those that are unique to your deployment and can be easily tracked and maintained in a version control system. The download, build, and repackaging strategies of customized artifacts is often controlled by a build tool such as Apache Maven where the process is facilitated through automation as much as possible.
The midPoint project itself presents an overlay project built using Apache Maven, with specific branches dedicated to midPoint versions. Unicon has also developed a similar project using the Gradle build tool to take advantage of advanced build features such as dependency management, incremental compilation, better build performance and caching, and more. The build is able to understand Maven repositories that host midPoint binary artifacts and also is able to repackage the application so that it can be executed in a standalone fashion via the embedded Apache Tomcat container and the likes of "java jar midPoint.war".
If you would like to learn more about this project and the feasibility of adopting it for your midPoint deployment, please reach out and contact Unicon for more information.