Demos

Every feature below is a **self-contained project you can clone and run**. Each carries its own `build/jenesis/` sources, so `java build/jenesis/Project.java` from the demo folder builds it. A few that customise or drive the build themselves ship a `build/Demo.java` to run instead; each demo's own README says which. They are numbered as a progression: the early ones establish the basics, the later ones go into specifics. Browse them on GitHub:

Getting started

The four foundational project shapes - start here.

Executables & packaging

Turning a project into something you can ship and run - and running what somebody else shipped.

  • Executable (Maven) A runnable Maven project packaged with jpackage, plus bundle, launcher jar, and a container context.
  • Executable (modular) The same for a module: an app image, a .jmod and jlink runtime, a bundle, a launcher jar, and a Dockerfile.
  • Bundle Ship only the jars as a bundle.zip and run them on a stock JRE.
  • jlink & jpackage A custom .jmod carrying extra content, linked into a runtime and packaged into an app.
  • Native image A GraalVM native binary built end to end, with reachability metadata captured from the tests.
  • Publishing A Maven Central ready bundle - POM metadata, sources and javadoc jars - resolved back to prove it.
  • Running a released program jpx installs and launches a published tool - named as a module and as a coordinate, pinned and hash-verified.

JVM languages

Kotlin, Scala and Groovy - alone, mixed with Java, and with quality tooling.

Quality & testing

Keeping a codebase healthy and tests fast.

Supply chain & security

Knowing, pinning and governing what your build depends on.

  • SBOM Generating a software bill of materials.
  • Dependency licensing Checking dependency licences against policy.
  • Vulnerabilities Scanning dependencies for known vulnerabilities.
  • Bills of materials Importing a Maven BOM and a local pin file, and publishing a BOM of the module's own closure.
  • Supply-chain security Strict pinning and checksum verification, proven by getting both wrong on purpose.

The module system

Working with the Java Module System in earnest.

Build customisation

Reaching past the defaults.

Cloning the whole repository gives you all of them at once, plus Jenesis itself as the largest worked example. See Getting started to install the tool first.