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-process Server.java over a local Unix domain socket, with transparent fallback to standard javac.
- Parallel Multi-Module Reactor: Independent modules now compile concurrently according to their dependency DAG across up to
NumCPU workers; 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-agent argLine 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 parse build.gradle.kts and 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, and plugin packages.
- 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 compile