Skip to content

Building CEDAR

A build turns checked-out source into artifacts on the current machine. It does not publish those artifacts, start CEDAR, or create Docker images. Keeping those actions separate lets you prove a change locally before it affects another developer or deployment.

Build the Java Code

After updating the repositories, build the complete Java estate with:

cedarcli build java

This is the safest choice after changing a shared library or pulling coordinated backend changes, because cedarcli follows the required dependency order. Java test suites run by default and require no live backend; a successful build therefore means the code compiled and its unit and embedded integration tests passed.

For a fast compile/install loop after those tests have already passed, skip them explicitly:

cedarcli build java --skip-tests

The Java-reaching commands accept the paired --tests / --skip-tests option. Tests are enabled when neither is supplied. Frontend-only commands do not expose this Java-specific option.

Use a narrower target when the earlier layers are already current:

cedarcli build parent
cedarcli build libraries
cedarcli build project
cedarcli build clients

For a change contained in the current repository, use:

cedarcli build this

That is usually the quickest backend development loop: build the repository you changed, then restart the affected service in the selected deployment mode. It also runs that repository's tests unless --skip-tests is supplied.

Build the Frontends

Build the registered frontend projects with:

cedarcli build frontends

cedarcli uses the appropriate build for each frontend, even though the projects do not all share the same JavaScript framework or packaging process. During normal frontend development, the running development servers then rebuild source changes as you work.

Workspace and Template Designer also have a deliberately narrow build route while their split deployment is being stabilized:

cedarcli build split-frontends

That command installs their locked dependencies without touching the other frontends. For a native staging or production deployment, supply the configured Workspace and Designer URLs and generate the static trees that nginx serves directly:

cedarcli build split-frontends --server-payload

The payload build refuses dirty source, records source and content hashes in each generated app/config/build-info.json, and exits after producing the static trees. It does not start a development server or require Docker.

Build Everything

Use the broadest build when a change crosses Java and frontend boundaries or when you want a final preflight of the complete checkout:

cedarcli build all

For the normal edit-build-run cycle, prefer the narrowest target that includes the changed dependency. A complete build is more reassuring, but it should not replace understanding what the change actually affects.

Preview a Broad Build

Before running a large build, inspect its planned scope without executing the underlying commands:

cedarcli build all --dry-run

The preview is particularly useful after the repository inventory or a project's build process has changed. The generated plan says Maven clean install when tests will run and Maven clean install skip tests when --skip-tests was selected. A successful preview only confirms the selected work; the real build must still pass.