Docs / Build / build.properties

build.properties

S8ModuleBuildProps

Parsed by S8ModuleBuildProps.load(S8Mode mode, String targetName). The file lives at STACK/TARGET/build.properties.

Keys

KeyRequiredMeaning
module.javayesJPMS name (com.s8....). Used as --module.
dependenciesnoComma-separated target folder names (e.g. S8-meta-env), not Java names. Split on *, *.
module.webnoWeb/logical name. Defaults to the target name.
mainnoFully qualified main class → Main-Class and bash launcher.
authornoCreated-By in the manifest.
targetconventionNot read by the loader. Target is the directory name passed to load().
Trap Many files comment “dependencies (by JAVA name)”. The values are target folder names. Aloe’s comment is the correct one.

Examples

Leaf

S8-meta-env/build.properties
module.java = com.s8.meta.env
#dependencies = 
target = S8-meta-env

Typical IO module

S8-base-io-JSON/build.properties
module.java = com.s8.base.io.json
dependencies = \
  S8-meta-env, \
  S8-meta-API
target = S8-base-io-JSON

App with a main

S8-pkgs-ui-aloe/build.properties
module.java = com.s8.pkgs.ui.aloe
dependencies = \
  S8-meta-env, S8-meta-API, \
  S8-pkgs-ui-carbide, S8-pkgs-io-SVG
target = S8-pkgs-ui-aloe
main = com.s8.pkgs.ui.aloe.LaunchServer