Docs / Modules
Module system
S8-meta-env
S8 modules do not nest. They are siblings under a stack root. The overlay is which root you are standing on: a git checkout (DEV) or a built tree of jars (PROD).
Layout
Typical checkout at {dev.stack}/{target}/:
| Path | Role |
|---|---|
sources/ | Java sources and module-info.java |
build.properties | Identity and dependencies |
web-sources/ | Front JS/CSS (optional) |
static-assets/ | Static/service assets (optional) |
demos/, tools/, dev-ops/ | Extra Java folded in at compile |
guidelines/ | Copied to prod when present |
forge/ | Build scratch, cleaned each build |
Required wiring
- A root class with
public static final S8Module MODULE. module-info.javaannotated@S8ModuleDescriptor(def = RootClass.class).build.properties.
Runtime resolution: S8Module.getMode() looks at whether the code source path sits under the prod root or the dev root. Web sources resolve to web-sources in DEV and web-classes in PROD.