Skip to content

fix: Revert build to Maven 3.9.x compatibility#1699

Merged
gnodet merged 3 commits intomasterfrom
fix/maven3-compat
Mar 17, 2026
Merged

fix: Revert build to Maven 3.9.x compatibility#1699
gnodet merged 3 commits intomasterfrom
fix/maven3-compat

Conversation

@gnodet
Copy link
Member

@gnodet gnodet commented Mar 17, 2026

Summary

Fixes #1690

  • Converts all 21 POMs from Maven 4.1.0 model back to 4.0.0 model for Maven 3.9.x compatibility
  • Preserves zero-commit versioning via nisse translation table (jgit.dynamicVersionrevision)
  • Uses ${revision} CI-friendly versioning with flatten-maven-plugin for clean installed/deployed POMs
  • Adds .mvn/maven.config for nisse configuration (Maven 3.x doesn't read .mvn/maven-user.properties)

Key changes

  • POM namespace 4.1.04.0.0, <subprojects><modules>, explicit <parent> blocks
  • Added missing <groupId> on intra-project dependencies
  • Added reactor modules to <dependencyManagement> (Maven 3.x doesn't auto-resolve reactor versions)
  • Maven version: 3.9.14, enforcer requires 3.9.0+

Test plan

  • mvx mvn install -DskipTests succeeds with Maven 3.9.14
  • Version correctly resolves to 4.0.1-1-SNAPSHOT from git tags
  • Installed POMs have resolved versions (no ${revision} leaking)
  • CI build passes

gnodet added 3 commits March 17, 2026 18:12
Convert all POMs from Maven 4.1.0 model to 4.0.0 model:
- Change POM namespace from 4.1.0 to 4.0.0 and add modelVersion
- Replace <subprojects> with <modules>
- Replace empty <parent/> with full parent references
- Add explicit groupId to intra-project dependencies
- Add reactor modules to dependencyManagement with ${project.version}
- Use ${revision} CI-friendly version with flatten-maven-plugin
- Configure nisse translation table to map dynamicVersion to revision
- Add .mvn/maven.config for Maven 3.x nisse configuration
- Update mvx to use Maven 3.9.14
- Update enforcer to require Maven 3.9.0+

Zero-commit versioning via nisse is preserved.
Version hint tags like `4.1.0-SNAPSHOT` match the workflow's tag
pattern and would accidentally trigger a release. Add an early
check that rejects tags containing `-` (e.g. SNAPSHOT, RC, beta).
Remove deprecated '--' separators and add missing -B flag.
@gnodet gnodet merged commit bd76b2b into master Mar 17, 2026
9 checks passed
mergify bot added a commit to ArcadeData/arcadedb that referenced this pull request Mar 23, 2026
Bumps `jline.version` from 3.30.6 to 4.0.7.
Updates `org.jline:jline-terminal` from 3.30.6 to 4.0.7
Release notes

*Sourced from [org.jline:jline-terminal's releases](https://github.com/jline/jline3/releases).*

> JLine 4.0.7
> -----------
>
> 🐛 Bug Fixes
> -----------
>
> * Suppress dumb terminal warning when no streams are TTYs ([#1703](https://github.com/jline/jline3/pull/1703)) [`@​gnodet`](https://github.com/gnodet)
>   + In CI environments (like GitHub Actions), the "Unable to create a system terminal" warning is no longer emitted when falling back to a dumb terminal is expected because no TTY is available
>
> **Full Changelog**: <jline/jline3@4.0.6...4.0.7>
>
> JLine 4.0.6
> -----------
>
> 🔧 Build
> -------
>
> * Simplify versioning by using nisse property directly ([#1702](https://github.com/jline/jline3/pull/1702)) [`@​gnodet`](https://github.com/gnodet)
>
> 📦 Dependency updates
> --------------------
>
> * Bump org.codehaus.mojo:exec-maven-plugin from 3.5.1 to 3.6.3 ([#1700](https://github.com/jline/jline3/pull/1700)) [`@​dependabot`](https://github.com/dependabot)
>
> **Full Changelog**: <jline/jline3@4.0.5...4.0.6>
>
> JLine 4.0.5
> -----------
>
> What's Changed
> --------------
>
> * fix: Revert build to Maven 3.9.x compatibility by [`@​gnodet`](https://github.com/gnodet) in [jline/jline3#1699](https://github.com/jline/jline3/pull/1699)
> * chore: Bump release-drafter/release-drafter from 6 to 7 by [`@​dependabot`](https://github.com/dependabot)[bot] in [jline/jline3#1698](https://github.com/jline/jline3/pull/1698)
>
> **Full Changelog**: <jline/jline3@4.0.4...4.0.5>
>
> JLine 4.0.4
> -----------
>
> Bug Fixes
> ---------
>
> * Disable grapheme cluster mode probe (DECRQM) on Windows `PosixSysTerminal` to prevent escape sequence `[?2027$p` from leaking into subprocess output on Cygwin/MSYSTEM environments ([#1696](https://github.com/jline/jline3/issues/1696))
>   + This is a follow-up to the 4.0.3 fix which was insufficient — the `isSystemStream()` check was unreliable on Windows MSYSTEM environments
>
> Full Changelog
> --------------
>
> <jline/jline3@4.0.3...4.0.4>
>
> JLine 4.0.3
> -----------
>
> Bugfix release fixing output corruption on Windows when using Cygwin/MSYSTEM (Git Bash).
>
> ### Bug Fixes
>
> * **Fix grapheme cluster probe corrupting output on Windows** — On Windows with Cygwin/MSYSTEM (Git Bash), the DECRQM mode 2027 probe (`\e[?2027$p`) was written to a raw `FileDescriptor` (stdout/stderr) rather than a real PTY device. When the output was piped (e.g. subprocess with captured output), this escape sequence leaked into the process output, corrupting downstream consumers. The probe is now skipped when the `ExecPty` output stream is not connected to a real terminal. Interactive Cygwin/MSYSTEM terminals that support mode 2027 are unaffected. ([#1695](https://github.com/jline/jline3/issues/1695))
>
> JLine 4.0.2
> -----------
>
> Bugfix release fixing Maven 3/Gradle compatibility and JNI terminal provider issues.
>
> > **Note:** Users of 4.0.0 and 4.0.1 should upgrade to 4.0.2. Both prior releases had broken consumer POMs that prevented Maven 3 and Gradle from resolving JLine dependencies.

... (truncated)


Commits

* [`beabe4e`](jline/jline3@beabe4e) Merge pull request [#1703](https://github.com/jline/jline3/issues/1703) from jline/fix/suppress-dumb-terminal-warning-no-tty
* [`b3bf72f`](jline/jline3@b3bf72f) fix: Suppress dumb terminal warning when no streams are TTYs
* [`3ba42a8`](jline/jline3@3ba42a8) Merge pull request [#1700](https://github.com/jline/jline3/issues/1700) from jline/dependabot/maven/master/org.codehaus.mojo...
* [`372a1bb`](jline/jline3@372a1bb) Merge pull request [#1702](https://github.com/jline/jline3/issues/1702) from jline/fix/simplify-nisse-setup
* [`03b7d96`](jline/jline3@03b7d96) fix: Simplify versioning by using nisse property directly
* [`8b6bd46`](jline/jline3@8b6bd46) chore: Bump org.codehaus.mojo:exec-maven-plugin from 3.5.1 to 3.6.3
* [`ee52d32`](jline/jline3@ee52d32) Merge pull request [#1698](https://github.com/jline/jline3/issues/1698) from jline/dependabot/github\_actions/master/release-...
* [`bd76b2b`](jline/jline3@bd76b2b) Merge pull request [#1699](https://github.com/jline/jline3/issues/1699) from jline/fix/maven3-compat
* [`b33c819`](jline/jline3@b33c819) fix: Clean up mvx command syntax in release workflow
* [`d783438`](jline/jline3@d783438) fix: Guard release workflow against SNAPSHOT hint tags
* Additional commits viewable in [compare view](jline/jline3@jline-3.30.6...4.0.7)
  
Updates `org.jline:jline-reader` from 3.30.6 to 4.0.7
Release notes

*Sourced from [org.jline:jline-reader's releases](https://github.com/jline/jline3/releases).*

> JLine 4.0.7
> -----------
>
> 🐛 Bug Fixes
> -----------
>
> * Suppress dumb terminal warning when no streams are TTYs ([#1703](https://github.com/jline/jline3/pull/1703)) [`@​gnodet`](https://github.com/gnodet)
>   + In CI environments (like GitHub Actions), the "Unable to create a system terminal" warning is no longer emitted when falling back to a dumb terminal is expected because no TTY is available
>
> **Full Changelog**: <jline/jline3@4.0.6...4.0.7>
>
> JLine 4.0.6
> -----------
>
> 🔧 Build
> -------
>
> * Simplify versioning by using nisse property directly ([#1702](https://github.com/jline/jline3/pull/1702)) [`@​gnodet`](https://github.com/gnodet)
>
> 📦 Dependency updates
> --------------------
>
> * Bump org.codehaus.mojo:exec-maven-plugin from 3.5.1 to 3.6.3 ([#1700](https://github.com/jline/jline3/pull/1700)) [`@​dependabot`](https://github.com/dependabot)
>
> **Full Changelog**: <jline/jline3@4.0.5...4.0.6>
>
> JLine 4.0.5
> -----------
>
> What's Changed
> --------------
>
> * fix: Revert build to Maven 3.9.x compatibility by [`@​gnodet`](https://github.com/gnodet) in [jline/jline3#1699](https://github.com/jline/jline3/pull/1699)
> * chore: Bump release-drafter/release-drafter from 6 to 7 by [`@​dependabot`](https://github.com/dependabot)[bot] in [jline/jline3#1698](https://github.com/jline/jline3/pull/1698)
>
> **Full Changelog**: <jline/jline3@4.0.4...4.0.5>
>
> JLine 4.0.4
> -----------
>
> Bug Fixes
> ---------
>
> * Disable grapheme cluster mode probe (DECRQM) on Windows `PosixSysTerminal` to prevent escape sequence `[?2027$p` from leaking into subprocess output on Cygwin/MSYSTEM environments ([#1696](https://github.com/jline/jline3/issues/1696))
>   + This is a follow-up to the 4.0.3 fix which was insufficient — the `isSystemStream()` check was unreliable on Windows MSYSTEM environments
>
> Full Changelog
> --------------
>
> <jline/jline3@4.0.3...4.0.4>
>
> JLine 4.0.3
> -----------
>
> Bugfix release fixing output corruption on Windows when using Cygwin/MSYSTEM (Git Bash).
>
> ### Bug Fixes
>
> * **Fix grapheme cluster probe corrupting output on Windows** — On Windows with Cygwin/MSYSTEM (Git Bash), the DECRQM mode 2027 probe (`\e[?2027$p`) was written to a raw `FileDescriptor` (stdout/stderr) rather than a real PTY device. When the output was piped (e.g. subprocess with captured output), this escape sequence leaked into the process output, corrupting downstream consumers. The probe is now skipped when the `ExecPty` output stream is not connected to a real terminal. Interactive Cygwin/MSYSTEM terminals that support mode 2027 are unaffected. ([#1695](https://github.com/jline/jline3/issues/1695))
>
> JLine 4.0.2
> -----------
>
> Bugfix release fixing Maven 3/Gradle compatibility and JNI terminal provider issues.
>
> > **Note:** Users of 4.0.0 and 4.0.1 should upgrade to 4.0.2. Both prior releases had broken consumer POMs that prevented Maven 3 and Gradle from resolving JLine dependencies.

... (truncated)


Commits

* [`beabe4e`](jline/jline3@beabe4e) Merge pull request [#1703](https://github.com/jline/jline3/issues/1703) from jline/fix/suppress-dumb-terminal-warning-no-tty
* [`b3bf72f`](jline/jline3@b3bf72f) fix: Suppress dumb terminal warning when no streams are TTYs
* [`3ba42a8`](jline/jline3@3ba42a8) Merge pull request [#1700](https://github.com/jline/jline3/issues/1700) from jline/dependabot/maven/master/org.codehaus.mojo...
* [`372a1bb`](jline/jline3@372a1bb) Merge pull request [#1702](https://github.com/jline/jline3/issues/1702) from jline/fix/simplify-nisse-setup
* [`03b7d96`](jline/jline3@03b7d96) fix: Simplify versioning by using nisse property directly
* [`8b6bd46`](jline/jline3@8b6bd46) chore: Bump org.codehaus.mojo:exec-maven-plugin from 3.5.1 to 3.6.3
* [`ee52d32`](jline/jline3@ee52d32) Merge pull request [#1698](https://github.com/jline/jline3/issues/1698) from jline/dependabot/github\_actions/master/release-...
* [`bd76b2b`](jline/jline3@bd76b2b) Merge pull request [#1699](https://github.com/jline/jline3/issues/1699) from jline/fix/maven3-compat
* [`b33c819`](jline/jline3@b33c819) fix: Clean up mvx command syntax in release workflow
* [`d783438`](jline/jline3@d783438) fix: Guard release workflow against SNAPSHOT hint tags
* Additional commits viewable in [compare view](jline/jline3@jline-3.30.6...4.0.7)
  
Updates `org.jline:jline-terminal-jni` from 3.30.6 to 4.0.7
Release notes

*Sourced from [org.jline:jline-terminal-jni's releases](https://github.com/jline/jline3/releases).*

> JLine 4.0.7
> -----------
>
> 🐛 Bug Fixes
> -----------
>
> * Suppress dumb terminal warning when no streams are TTYs ([#1703](https://github.com/jline/jline3/pull/1703)) [`@​gnodet`](https://github.com/gnodet)
>   + In CI environments (like GitHub Actions), the "Unable to create a system terminal" warning is no longer emitted when falling back to a dumb terminal is expected because no TTY is available
>
> **Full Changelog**: <jline/jline3@4.0.6...4.0.7>
>
> JLine 4.0.6
> -----------
>
> 🔧 Build
> -------
>
> * Simplify versioning by using nisse property directly ([#1702](https://github.com/jline/jline3/pull/1702)) [`@​gnodet`](https://github.com/gnodet)
>
> 📦 Dependency updates
> --------------------
>
> * Bump org.codehaus.mojo:exec-maven-plugin from 3.5.1 to 3.6.3 ([#1700](https://github.com/jline/jline3/pull/1700)) [`@​dependabot`](https://github.com/dependabot)
>
> **Full Changelog**: <jline/jline3@4.0.5...4.0.6>
>
> JLine 4.0.5
> -----------
>
> What's Changed
> --------------
>
> * fix: Revert build to Maven 3.9.x compatibility by [`@​gnodet`](https://github.com/gnodet) in [jline/jline3#1699](https://github.com/jline/jline3/pull/1699)
> * chore: Bump release-drafter/release-drafter from 6 to 7 by [`@​dependabot`](https://github.com/dependabot)[bot] in [jline/jline3#1698](https://github.com/jline/jline3/pull/1698)
>
> **Full Changelog**: <jline/jline3@4.0.4...4.0.5>
>
> JLine 4.0.4
> -----------
>
> Bug Fixes
> ---------
>
> * Disable grapheme cluster mode probe (DECRQM) on Windows `PosixSysTerminal` to prevent escape sequence `[?2027$p` from leaking into subprocess output on Cygwin/MSYSTEM environments ([#1696](https://github.com/jline/jline3/issues/1696))
>   + This is a follow-up to the 4.0.3 fix which was insufficient — the `isSystemStream()` check was unreliable on Windows MSYSTEM environments
>
> Full Changelog
> --------------
>
> <jline/jline3@4.0.3...4.0.4>
>
> JLine 4.0.3
> -----------
>
> Bugfix release fixing output corruption on Windows when using Cygwin/MSYSTEM (Git Bash).
>
> ### Bug Fixes
>
> * **Fix grapheme cluster probe corrupting output on Windows** — On Windows with Cygwin/MSYSTEM (Git Bash), the DECRQM mode 2027 probe (`\e[?2027$p`) was written to a raw `FileDescriptor` (stdout/stderr) rather than a real PTY device. When the output was piped (e.g. subprocess with captured output), this escape sequence leaked into the process output, corrupting downstream consumers. The probe is now skipped when the `ExecPty` output stream is not connected to a real terminal. Interactive Cygwin/MSYSTEM terminals that support mode 2027 are unaffected. ([#1695](https://github.com/jline/jline3/issues/1695))
>
> JLine 4.0.2
> -----------
>
> Bugfix release fixing Maven 3/Gradle compatibility and JNI terminal provider issues.
>
> > **Note:** Users of 4.0.0 and 4.0.1 should upgrade to 4.0.2. Both prior releases had broken consumer POMs that prevented Maven 3 and Gradle from resolving JLine dependencies.

... (truncated)


Commits

* [`beabe4e`](jline/jline3@beabe4e) Merge pull request [#1703](https://github.com/jline/jline3/issues/1703) from jline/fix/suppress-dumb-terminal-warning-no-tty
* [`b3bf72f`](jline/jline3@b3bf72f) fix: Suppress dumb terminal warning when no streams are TTYs
* [`3ba42a8`](jline/jline3@3ba42a8) Merge pull request [#1700](https://github.com/jline/jline3/issues/1700) from jline/dependabot/maven/master/org.codehaus.mojo...
* [`372a1bb`](jline/jline3@372a1bb) Merge pull request [#1702](https://github.com/jline/jline3/issues/1702) from jline/fix/simplify-nisse-setup
* [`03b7d96`](jline/jline3@03b7d96) fix: Simplify versioning by using nisse property directly
* [`8b6bd46`](jline/jline3@8b6bd46) chore: Bump org.codehaus.mojo:exec-maven-plugin from 3.5.1 to 3.6.3
* [`ee52d32`](jline/jline3@ee52d32) Merge pull request [#1698](https://github.com/jline/jline3/issues/1698) from jline/dependabot/github\_actions/master/release-...
* [`bd76b2b`](jline/jline3@bd76b2b) Merge pull request [#1699](https://github.com/jline/jline3/issues/1699) from jline/fix/maven3-compat
* [`b33c819`](jline/jline3@b33c819) fix: Clean up mvx command syntax in release workflow
* [`d783438`](jline/jline3@d783438) fix: Guard release workflow against SNAPSHOT hint tags
* Additional commits viewable in [compare view](jline/jline3@jline-3.30.6...4.0.7)
  
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
  
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Revert build to Maven3?

1 participant