Repository navigation
Releases: mxreal64/jv
Release list
v0.2.0-rc1
jv v0.2.0-rc1
Highlights
- Persistent Javac Worker (
JV_JAVAC_WORKER=1): Slashes compile times by eliminating the 400–800ms JVM startup overhead. Communicates with a long-running in-processServer.javaover a local Unix domain socket, with transparent fallback to standardjavac. - Parallel Multi-Module Reactor: Independent modules now compile concurrently according to their dependency DAG across up to
NumCPUworkers; downstream modules unlock the moment their dependencies finish compiling. - Native Maven Plugin Suite: Fast, in-process implementations of common build plugins without invoking Maven:
spring-boot:repackage(nested fat jars with Spring Boot 3 loader layout)maven-shade-plugin(class relocation, constant pool rewriting, and SPI service merging)flatten-maven-plugin(CI-friendly${revision}resolution and section stripping)jacoco-maven-plugin(prepare-agentargLine injection and report generation)maven-resources-plugin(${...}/@...@filtering with binary detection)maven-enforcer-plugin(dependency convergence, banned deps, Java version enforcement)
- Gradle Kotlin DSL Support: Added static analyzer (
ktsparse) to parsebuild.gradle.ktsand export dependencies without launching Gradle. - Out-of-Process Plugin Architecture: JSON-over-stdio protocol for third-party build plugins with incremental caching.
Improvements & Fixes
- Windows Support: Fixed path separators, directory colons, and process invocation across Windows CI jobs.
- Test Coverage: Elevated test coverage to >90% across
jacoco,flatten,runner, andpluginpackages. - Parity & Race Detector: All 24 Go packages pass clean under
go test -race; 306/306 integration tests matching Maven parity.
Quick Start
# Enable the persistent javac daemon
export JV_JAVAC_WORKER=1
jv compilev0.1.0-rc1
Maven and Gradle builds, minus the wait. First public release candidate.
What’s new
This is the initial public release. Everything is new.
Maven
Dependency resolution with exact Maven semantics, including an exact port of ComparableVersion for version ordering and ranges
Parent POMs, BOM imports, dependencyManagement, profiles (property, jdk, os, file activation), settings.xml profiles and proxies, encrypted server passwords
Multi-module reactor in dependency order; -pl, positional clean, non-default POM file names in
for compiler, surefire and jar plugins now read and applied
Surefire: includes/excludes (Ant globs), groups/excludedGroups, argLine, systemPropertyVariables
Resource sync now removes deleted files; incremental javac keyed on upstream sibling output
Remote SNAPSHOTs with -U, SHA-1 verification, negative 404 caching, lock expiry for volatile resolutions
Gradle
Model-oracle mode: Gradle runs once to produce a JSON model, cached until build scripts change; subsequent builds are fully native
Bridge fallback with goal and flag translation for builds the oracle can’t reproduce
Installing
Download the archive for your platform from the Assets below, verify with checksums.txt, and put jv on your PATH. Or: go install github.com/mxreal64/jv@latest.