Build & Installation
Build & Installation
Build from source
NomaUBL uses a single build.sh script that compiles the Java backend and the React frontend, then packages everything into a self-contained JAR.
Never copy dist files manually
Do not manually copy src/web-react/dist/ to build/web/. The build.sh script does this automatically. Manual copies will be overwritten or cause inconsistencies.
The build script performs these steps in order:
- Compiles all Java sources in
src/with the required classpath (Oracle JDBC, XDO, etc.) - Builds the React frontend:
npm install && npm run buildinsidesrc/web-react/ - Copies
src/web-react/dist/→build/web/ - Packages
nomaubl.jarwith the compiled classes, bundled web assets, and validation resources
Output
After a successful build:
Verify the build
Expected output lists all available CLI modes:
Configuration files
NomaUBL uses a split JSON configuration. The main config file is typically named config.properties, and two sibling files are automatically loaded if present:
| File | Contents |
|---|---|
config.properties |
System templates: global, e-invoicing, e-directory |
config-documents.properties |
Document templates (e.g. vrc_pro, isc_facture) |
config-lists.properties |
Reference lists (currencies, VAT categories, etc.) |
Single-file mode
If the sibling files do not exist, NomaUBL falls back to single-file mode and reads all templates from config.properties.
To bootstrap a config file, copy and adapt the templates provided in src/config/:
Deployment layout
A typical production deployment looks like:
Set appHome and processHome in the global template to point to this layout.
Encoding a DB password
The Oracle DB password must be stored Base64-encoded in the global template. Use the built-in encoder:
Copy the output into the DBPassword property of your global template.