kwenza

A simple, declarative build tool for the JVM.

Your build is a TOML file, not a program.

kwenza.toml
[package]
name = "hello-world"
group = "com.example"
version = "0.1.0"
java-version = "21"
main-class = "com.example.Main"

[dependencies]
guava = { module = "com.google.guava:guava", version = "33.2.1-jre" }
Terminal
$ kwenza run
resolve: using locked dependencies (kwenza.lock)
compile: target/classes
run: java -cp target/classes (+7 dependency jars) com.example.Main
Hello from Kwenza: kwenza builds java

Install

kwenza needs JDK 21 or newer. Until the first release is packaged, build it from source:

git clone https://github.com/kwenza-build/kwenza.git && cd kwenza
./bootstrap.sh && bin/kwenza package
export PATH="$PWD/bin:$PATH"
  • Declarative The manifest is data. It never runs, so reading it tells you everything.

  • Interoperable Maven Central, ~/.m2, src/main/java. Your IDE and cache keep working.

  • Reproducible kwenza.lock wins by default. No network unless your dependencies changed.

  • Transparent Every command prints what it actually ran.