Java Bump Version
| This documentation was generated with the assistance of AI. Please report any inaccuracies. |
Set a JVM (Java or Kotlin) project’s version to an exact value across every file that needs to agree with it. For
Maven, a single-module pom.xml has its own <version> rewritten in place, and a reactor (a root pom.xml
declaring <modules>) runs mvn versions:set. For Gradle (Kotlin DSL or Groovy), it finds every literal project
version declaration and rewrites them all. This skill never computes a version itself — it only applies the exact
value it is given, validated for shape, and optionally syncs README/Antora mentions to match.
Purpose
iru-java-bump-version is the JVM-ecosystem leaf that a caller — typically iru-release — delegates the actual
version-file edit to, instead of hand-editing build files or duplicating reactor-vs-single-module logic in every
skill that needs to change a project’s version. It mirrors the contract iru-typescript-bump-version,
iru-android-bump-version, and iru-swift-bump-version define for their own ecosystems, documenting this
catalog’s X.Y.Z / X.Y.Z-SNAPSHOT pre-release convention so a caller has one place to read the release/next-dev
computation from.
The Gradle path covers Kotlin Spring Boot and Quarkus services and plain JVM libraries. It scans version= in any
gradle.properties, version = "…" in any module’s build.gradle(.kts), and the gradle.properties key or
gradle/libs.versions.toml [versions] entry a build script reads its version from. It refuses to write when
modules disagree until the user confirms. Android Gradle projects are out of scope and are redirected to
iru-android-bump-version.
When the Kotlin Multiplatform plugin is applied anywhere in the build, the skill stops and points to KMP Bump Version instead.
Plugin
Shipped by the iru-java plugin of the ai-catalog marketplace (install with /plugin install iru-java@ai-catalog; see Plugins).
Inputs
| Argument | Required | Description | Default |
|---|---|---|---|
|
Yes |
Positional. The literal target version string (e.g. |
None — asked for if missing. |
|
No |
|
Ask once, after Step 2, only if such mentions actually exist. |
|
No |
|
Unset — development markers are then only rewritten when |
|
No |
|
|
Outputs
-
Maven:
pom.xmlrewritten in place — the root artifact’s own<version>(single module) or every module’s version viamvn versions:set -DgenerateBackupPoms=false(reactor). -
Gradle: every literal project-version location rewritten (
gradle.properties,build.gradle(.kts),gradle/libs.versions.toml[versions]), and nothing else (dependency/plugin versions are untouched). -
Optionally, when
sync-filesis accepted: dependency snippets and "Latest release"/"Latest snapshot" markers inREADME.md, theversion:field indocs/antora.yml(only for a released, non--SNAPSHOTvalue), and Antora pages showing literal dependency snippets. -
A report of the build tool, the old and new version, reactor vs single module (or Gradle locations found), every file touched, and the Step 6 sanity-check result.
-
With
dry-run: yes, nothing is written and no mutating command is run — only the diff/command is shown.
Execution flow
Dependencies
Invokes
None — iru-java-bump-version is a leaf skill; it only runs Maven (mvn versions:set, mvn help:evaluate), Gradle
(./gradlew properties) and Python/regex file rewrites, and reports on the outcome. It does not call any other
skill in this catalog (it only points the user at iru-android-bump-version for Android projects).
It also points Kotlin Multiplatform projects at KMP Bump Version but does not invoke it.
Invoked by
-
Release — Step 6, version bump for Java/Kotlin JVM projects (Maven or Gradle).
version, once to bump and reappend -SNAPSHOT for the next development cycle) when iru-release detects the
repository’s ecosystem is Java/Maven, discovered by its find .claude/skills -maxdepth 1 -type d -name
"iru-*-bump-version" lookup.
Source
SKILL.md on GitHub — the file this page was generated from.