Zero-Commit, Zero-Input Maven Releases

How to release Maven projects with just git tag — no version commits, no CI parameters, no release plugin — using Nisse and git-derived versions.

gnodet's blog

Storytime: How and why we ended up with creating DOMTrip https://maveniverse.eu/blog/2026/02/05/domtrip/

#maven #maveniverse

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.

Maveniverse

A workable experiment: https://maveniverse.eu/blog/2026/02/03/maven-@-ipfs-ii/

Next to taste is Peergos (Nabu, to be precise)?

#maven #ipfs #maveniverse

Maven @ IPFS (II)

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.

Maveniverse
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

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

#maven #maveniverse #maven3 #maven4

My latest ramblings about ongoing discussion on Maven dev ML: lockfiles. https://maveniverse.eu/blog/2025/12/06/lockfiles/

#maven #maven3 #maven4 #maveniverse

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:

Maveniverse

Ever wondered what a dependency update brings in? Use latest Toolbox to figure out.

#maven #java #maveniverse

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.

https://maveniverse.eu/docs/

#maven3 #maven4 #maveniverse

Documentation

This site are is “work in progress” and will remain as such for a long time. As our time allows. This section is where the user documentation for our project lives - all the information You need to understand and successfully use our projects.

Maveniverse

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

#maven3 #maven4 #maveniverse

Release 0.2.0 · maveniverse/domtrip

What's Changed Add "extension" element by @cstamas in #33 Add inner whitespace fields to Element class and fix all snippet tests by @gnodet in #35 Append by @cstamas in #34 Full Changelog: releas...

GitHub