If you’ve ever tried writing a quick Java script or small backend app without dragging along the heavy boilerplate of traditional build tools, you know the frustration. Managing dependencies manually means searching Maven Central, downloading raw JARs, and hoping your classpath doesn't break when you move to a new machine.
That friction is why I started building jar-cart—a zero-config CLI package manager and runner designed to give Java developers the speed and simplicity of modern ecosystems like Node's npm or Python's uv, while keeping the absolute freedom of "no-build" Java.
With the brand-new v0.6.0 release, jar-cart has evolved from a simple script manager into a production-grade workspace orchestrator. Here is what changed and why I built it.
The Problem: Friction and Duplication
When working outside of heavy enterprise build systems, developers usually hit a wall:
- Manual Bottlenecks: Tracking down and placing JAR files by hand.
- Zero Reproducibility: Moving code to a new machine often shatters runtime classpaths.
- Unmanaged Bloat: Duplicate JAR copies scattered across random local directories.
I wanted something that felt invisible when you didn't need it, but instantly powerful when you did.
What’s New in v0.6.0 🚀
🧠 Multi-Module Workspace Orchestrator
For larger projects, v0.6.0 introduces comprehensive workspace-wide command execution managed via jar-cart.workspace.json:
-
RunWorkspaceScript: Executes custom scripts and theirpre/postlifecycle hooks sequentially across all target modules. -
RunWorkspaceBuild: Handles automated multi-module builds using topological sorting and directory context switching. -
CheckWorkspaceVulnerabilities: Audits dependencies across all workspace modules simultaneously via the OSV batch API.
🔗 Deps.dev & Content-Addressable Cache (CAS)
Dependency resolution has been completely re-engineered. jar-cart now leverages Google's deps.dev Insights API (v3) backed by a Content-Addressable Storage (CAS) cache and concurrent CPU processing (errgroup), completely eliminating fragile XML/POM parsing for lightning-fast, deterministic fetches.
🏗️ Flexible Project Scaffolding (flat vs backend)
When running jar-cart init, you are no longer locked into a single layout:
-
flat: Perfect for quick, single-directory scripts and lightweight utilities. -
backend: Tailored architecture layout for server-side applications, complete with pre-configured source packages, resource directories, and environment templates.
📦 Native Package Managers & The jc Alias
You can now install and keep jar-cart updated effortlessly using official distribution channels:
-
Homebrew (
brew) for macOS & Linux (brew install Sudhanshu-Ambastha/tap/jar-cart) -
Chocolatey (
choco) for Windows (choco install jar-cart)
Installation via either package manager automatically unlocks the fast jc CLI alias.
Highlights from Previous Releases
If you haven't checked out the project recently, several major performance and security milestones paved the way for v0.6.0:
-
Massive Manifest Optimization (v0.4.0): Introduced declarative manifest controls (
optimize) that dynamically strip debug symbols and leverage native compilation optimizations, achieving an ~87% reduction in runtime footprint (slashing standard distributions from ~290MB down to ~12MB). -
Security Auditing (v0.5.0): Built-in
auditcommand leveraging the OSV API for real-time vulnerability detection and severity tracking. - Incremental Builds & Hot Reloads (v0.3.2): Added SHA-256 content-aware hashing to prevent redundant compilation cycles, paired with a debounced file watcher for instant live-reloading.
- Integrated Decompiler (v0.1.1): On-demand provisioning of top-tier Java decompilers (Vineflower, CFR, Procyon) for a seamless Decompile-Modify-Rebuild workflow.
Get Started Today
Whether you are writing simple micro-scripts or orchestrating multi-module backend systems, Java development doesn't have to feel bloated.
- GitHub Repository: Sudhanshu-Ambastha/jar-cart
- Feedback & Contributions: Drop a star on the repo if it solves a pain point for you, and feel free to open an issue or pull request to help shape what comes next! 🚀
Top comments (0)