What is Stackctl?
Stackctl is a command-line tool with two jobs:
- Project initializr. An interactive terminal UI that creates new Java projects from framework starters.
- Task runner. Runs named tasks (build, test, release, anything) from a task file in your project.
Project initializr
Run stackctl with no arguments. You choose a framework (Spring Boot, Quarkus or Micronaut), a build tool, a Java version, a framework version and your dependencies. Stackctl then calls the official starter API and extracts a ready-to-run project into your directory.
It is built for a keyboard-first workflow, so you never need to open a browser just to start an app.
Task runner
Define tasks in stackctl.yml, stackctl.json or stackctl.toml:
tasks:
build:
desc: Build the app
cmds:
- ./mvnw -q packageThen run them:
stackctl run buildThe file layout follows Taskfile, so if you already know it, you already know most of this.
Not a Taskfile clone
Stackctl implements the most useful part of the Taskfile format: tasks, commands, dependencies, variables, env and templates. Features such as sources/generates, status, includes and dynamic sh: variables are not supported.