Skip to content

Releases: mxreal64/jv

v0.2.0-rc1

Choose a tag to compare

@mxreal64 mxreal64 released this 24 Oct 13:01
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

v0.1.0-rc1

Choose a tag to compare

@mxreal64 mxreal64 released this 23 Oct 11:06
f4733a8

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.