Ambari Development
This section is the entry point for building and testing Apache Ambari 3.1. Start with Building from Source to prepare the Java, Maven, Python, and React toolchains. Use Running Tests for Maven reactor commands and Unit Test Reports to locate generated results.
Source And Modules
The repository root is the Maven reactor. Server, Agent, shared libraries, Views, and the ambari-web and ambari-admin React packages are separate modules. Prefer -pl with -am so Maven selects the requested module and builds its reactor dependencies.
Toolchain
Ambari 3.1 builds with JDK 17 and Maven 3.9.x. The packaged Agent and Server Python runtime targets CPython 3.9 (cp39) on Linux x86_64; this package target is distinct from the Python interpreter used to run build helpers. The React applications use the Node/npm versions configured by the repository toolchain and require Node 22 for the current frontend scripts.
Build Boundaries
The normal Maven build includes Java and Python packaging and can invoke the ambari-web/latest React build. A focused Java build can skip Python or UI work with the supported properties documented in the build guide. Do not treat a skipped profile as evidence that the skipped product area passed.
Test Boundaries
Maven Surefire/Failsafe, Python runner output, and React tests validate Ambari product code. Website Markdown/i18n and browser checks validate this documentation site and are separate from Ambari Server/Agent acceptance. A green website check does not prove a real cluster workflow.
Development Workflow
- Check out the source and inspect the affected module.
- Run
mvn -version, confirm JDK 17/Maven 3.9.x, and confirm the required CPython/Node toolchains. - Build or test the smallest reactor slice with
-pland-am. - Review reports, generated artifacts, and skipped-test properties.
- Validate deployment behavior on a representative Ambari Server/Agent and Stack when changing runtime workflows.