pi-maven
v0.2.1
Published
Maven extension for pi — structured test execution, project info, and version lookup
Readme
pi-maven
Maven extension for pi, plus a standalone CLI (tdder-maven) for
agents that only have shell access (Claude Code, OpenCode, Cursor, …).
Features
maven_run— runstestorpackage, parses Surefire/Failsafe XML reports, returns structured JSON with failure details (kind, type, file offset)maven_project_info— detects project root, module tree, runner (mvn/mvnw), and available root-pom profilesmaven_lookup_version— looks up the latest stable (or pre-release) version of any Maven dependency or plugin from Maven Centralmaven_available_java_versions— returns available Java releases from Adoptium (latest feature release, latest LTS, release age)/mavencommand — slash command with live progress widget forinfo,test,package,version, andjava-versionstdder-mavenCLI — same functionality as a standalone command for agents that only have shell access
Installation (pi)
pi install git:github.com/t1/tdderOr install just this package from npm:
pi install pi-mavenCLI (tdder-maven)
Requires tsx on your PATH.
tdder-maven info
tdder-maven test --scope surefire
tdder-maven test --scope all --profiles at
tdder-maven test --scope surefire --selector 'MyTest#myMethod'
tdder-maven test --scope surefire --update-snapshots
tdder-maven test --scope surefire --limit=none
tdder-maven package
tdder-maven package --project module-a --profiles native
tdder-maven lookup-version org.assertj assertj-core
tdder-maven lookup-version io.quarkus quarkus-bom --include-prereleases
tdder-maven available-java-versions
tdder-maven helpAll commands output structured JSON to stdout. Non-zero exit code on failure.
Test scopes
| Scope | Behaviour |
|------------|--------------------------------------------------------------------|
| surefire | Unit tests only (mvn test) |
| failsafe | Integration tests only (mvn verify -Dskip.surefire.tests=true …) |
| all | Unit + integration tests (mvn verify -DskipITs=false) |
If --scope failsafe returns SUREFIRE_SKIP_NOT_CONFIGURED, follow the instructions in the error response.
Release
npm run sync-extensions(from repo root) — vendor shared code- Bump
versioninpackage.json npm test— verify all tests passnpm loginnpm publish(from this directory)npm logout
