Skip to content

Building from source

The platform source lives at eclipse/dirigible. Build it with Maven.

Prerequisites

  • JDK 21 - the project compiles to Java 21. CI uses Corretto 21.
  • Maven 3.8.x.
  • Node.js 22.x with global typescript and esbuild (frontend WebJars are transpiled / bundled at Maven build time).
  • ttyd on PATH - only needed at runtime for the in-IDE terminal on port 9000.

Common commands

GoalCommand
Full build with all unit testsmvn clean install
Fast build (no tests / javadoc / license / format)mvn -T 1C clean install -P quick-build
Unit tests only (no integration tests)mvn clean install -P unit-tests
Run unit + integration testsmvn clean install -P tests
Integration tests onlymvn clean install -P integration-tests -D selenide.headless=true
A specific IT (comma-separated)mvn clean install -P integration-tests -Dit.test="CsvimIT,CreateNewProjectIT" -D selenide.headless=true
A single unit testmvn -pl <module-path> -am test -Dtest=ClassName#method
Format Java codemvn formatter:format (or -P format)
Validate formatting (what CI runs)mvn -T 1C formatter:validate
Static analysismvn clean install -P spotbugs
Coverage report (JaCoCo)mvn clean -B package -P coverage
Refresh license headersmvn license:format -P license -DskipExistingHeaders=false

Run after build

bash
java -jar build/application/target/dirigible-application-*-executable.jar

UI at http://localhost:8080. Default credentials: admin / admin.

For a remote-debug-attachable JVM:

bash
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 \
    -jar build/application/target/dirigible-application-*-executable.jar

Repository layout

DirectoryPurpose
modules/Low-level platform building blocks: commons, database, engines, odata, parsers, repository.
components/The Spring application surface: core, engine, api, data, ide, platform, security, ui, template.
build/application/The runnable jar - DirigibleApplication.java, Dockerfile.
tests/tests-framework/Shared Selenide / Spring test base classes.
tests/tests-integrations/*IT.java UI integration tests with project fixtures.
cli/Standalone CLI that runs the jar against a given project path.
dependencies/BOM-style version pins.

See also

Released under the EPL-2.0 License.