Just published a deep dive into why Java packaging is so much harder than it should be—and how I finally solved it.

🔍 The Java Paradox:
Java's runtime is remarkably simple. But packaging? Dependency conflicts, manifest collisions, broken service loaders—what should be straightforward becomes a debugging nightmare.
After years of hitting these same issues across projects, I built JARadox—a minimal Fat JAR packager that handles the complexity automatically.
✨ What it does:
- Auto-detects main classes
- Handles dependency conflicts properly
- Preserves manifest metadata
- Supports framework SPI (Spring, Hibernate, Log4j)
- Bytecode relocation via ASM for nested JARs
Three settings. One click. Clean, runnable artifact.
📝 Read full story at Medium.com
🌮 Purchase JARadox: BuyMeATaco
or alternatively,
💾 Try JARadox here (pay-what-you-want): Gumroad
If you've ever wrestled with Maven Shade plugins or spent hours debugging "ClassNotFoundException" in production, this might save you some pain.
Thanks for your support over the years—it's what makes building tools like this possible! 🙏
