Zero-Commit, Zero-Input Maven Releases
Zero-Commit, Zero-Input Maven Releases
Maven Initializer by Open Elements: https://open-elements.com/posts/2026/02/26/using-maveniverse-toolbox-in-initializer-for-apache-maven/
Storytime: How and why we ended up with creating DOMTrip https://maveniverse.eu/blog/2026/02/05/domtrip/
Round-trip editing is a programmatic changing/editing of an existing XML document, like for example a Maven POM is, while preserving all the formatting, comments and all properties of the original document. Programmatic “editing” of POMs and other Maven related (mostly XML) files was long time requirement. Just think about Maven Release Plugin that “rewrites” the version of project during release process. Moreover, as Maven 4 is coming, the good old Xpp3Dom parser was out of the question, as Maven 4 model contains substantial changes, and moreover, is not using anymore the Xpp3Dom parser, but the Woodstox XML parser instead. Still, Maven universe, and especially legacy Maven universe was not always “good citizen” when it comes to XML, many POMs have to be “lax parsed”, as they had (known or unknown) issues.
A workable experiment: https://maveniverse.eu/blog/2026/02/03/maven-@-ipfs-ii/
Next to taste is Peergos (Nabu, to be precise)?
Lately has been toying with IPFS to achieve content sharing without centralized infrastructure. In other words, instead to free-ride on some (centralized) infrastructure that may be a public good, or some commercial offering, solve the publishing (and also “owning” and “hosting” the data) by my self. This entry explains the simplest use case: “small scale publishing”. Other use cases are “global caching” and will work them out later. Related previous blog article is here.
Maven Bytecode Support (for components)
https://maveniverse.eu/blog/2026/01/15/maven-components-and-maximum-java-bytecode/
Multiple times I see people confused about “what is the java bytecode version Maven supports”? It depends very much on which version of Maven you want to support: Maven 3.8.9-3.9.5 uses Sisu 0.3.5 that shades ASM 5.0.2 Maven 3.9.6-3.9.7 uses Sisu 0.9.0.M2 that shades ASM 9.4 Maven 3.9.8-3.9.9 uses Sisu 0.9.0.M3 that shades ASM 9.6 Maven 3.9.10-3.9.11 uses Sisu 0.9.0.M4 that depend on ASM 9.8 Maven 3.9.12+ uses Sisu 0.9.0.M4 that depend on ASM 9.9 The ASM library is used by Sisu to “lightly introspect” classes enumerated on sisu-index for annotations. Hence, it depends on used ASM version, what bytecode versions can Sisu inspect, and in essence, what maximum bytecode level components may be, to have them picked up by Maven. Components not recognized (not being able to introspect) are silently skipped. Your friend is -Dsisu.debug that will tell you about all the issues it finds.
Maveniverse Toolbox started as example for use of MIMA, it is a Maven Plugin, CLI, Maven 4 mvnsh extension, and today got another (re)use: Toolbox MCP Server. They are all built around same "shared core"!
https://github.com/maveniverse/toolbox/releases/tag/release-0.14.8
My latest ramblings about ongoing discussion on Maven dev ML: lockfiles. https://maveniverse.eu/blog/2025/12/06/lockfiles/
A short attempt to explain why Maven does not have “lockfile”, at least not in a sense many other build tools and ecosystems have. Next, will try to point out features that somewhat supplement various aspects of lock files. Finally, will throw in some bait and markers where we plan to go from here. What are lock files? For context would like to point to ML discussion ongoing here. In general, lock files usually carry following information or aspects:
Ever wondered what a dependency update brings in? Use latest Toolbox to figure out.
Do you want to be good Maven Universe citizen?
MIMIR is a pure workstation wide artifact cache usable on CI as well.
NJORD adds the publishing aspect, you can publish any Maven project to Central Portal with it.
HEIMDALL, the new god on the block, is Maven Repository Filtering on steroids: just by loading it you get prefix filtering. With configuring it, even more!
Works with Maven 3.9 and Maven 4.
Maveniverse NEWS:
* DOMTrip 0.2.0 released https://github.com/maveniverse/domtrip/releases/tag/release-0.2.0
* Toolbox 0.11.0 dropped old "pom editing" code and switched to DOMTrip https://github.com/maveniverse/toolbox