Skip to content

v0.2.0-rc1

Latest

Choose a tag to compare

@mxreal64 mxreal64 released this 24 Oct 13:01
· 2 commits to main since this release
31414e2

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