Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: CI

on:
pull_request:
branches: [ master, main ]
push:
branches: [ master, main ]

jobs:
test:
name: Run Tests
runs-on: ubuntu-latest

strategy:
matrix:
java-version: [8, 11, 17, 21]

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java-version }}
distribution: 'temurin'
cache: maven

- name: Build and Test
run: mvn -B verify --file pom.xml

- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-java-${{ matrix.java-version }}
path: target/surefire-reports/
retention-days: 7

4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

maven-compiler-plugin latest version 2026 JDK 25

💡 Result:

Latest stable Maven Compiler Plugin (as of Jan 7, 2026): 3.14.1. [1][2]

JDK 25 support: 3.14.1 includes fixes to enable working with JDK 25, but some users still report JDK‑25 compatibility errors in certain setups. If you need bleeding‑edge support, there is a 4.0.0‑beta line (requires newer Maven/JDK) you can evaluate. Test your build (or use toolchains) and upgrade to 3.14.1 (or try 4.x beta) if you encounter JDK‑25 issues. [3][4]

Sources:

  • Plugin download / current stable: maven‑compiler‑plugin 3.14.1. [1]
  • Plugin docs / compile goal shows 3.14.1 as current stable. [2]
  • Release discussion noting fixes for JDK 25 and ongoing issues. [3]
  • 4.0.0‑beta docs (4.x branch). [4]

🌐 Web query:

maven-compiler-plugin 3.1 JDK 25 support compatibility

💡 Result:

Short answer: No — maven-compiler-plugin 3.1 (released 2013) does not support Java 25 or the modern --release handling for recent Java versions. Use a recent plugin release (3.6+ for early Java 9 support and preferably a current 3.13+/4.x release) and set <maven.compiler.release>25 (or 25) while running Maven on a JDK 25. [1][2][3]

Sources:

  • maven-compiler-plugin 3.1 plugin page (release 2013). [1]
  • Compiler plugin docs on using --release / maven.compiler.release (current archives and 4.x docs). [2][3]

🌐 Web query:

maven-compiler-plugin --release flag minimum version requirement

💡 Result:

The maven-compiler-plugin added the (javac --release) option in version 3.6. Note: the javac --release JVM option itself requires JDK 9+, and plugin 3.13.0 added special handling so the plugin can accept the release property when running on JDK 8 (it will map to source/target). [1][2]

Sources:

  • Plugin documentation (compile mojo) — since 3.6. [1]
  • Plugin docs for release usage / JDK‑8 behavior (3.13.0 notes). [2]

Update maven-compiler-plugin to 3.14.1 for JDK 25 compatibility.

The maven-compiler-plugin version 3.1 (from 2013) does not support JDK 25. The CI workflow uses JDK 25 for compilation, so this plugin must be upgraded to avoid build failures or incorrect bytecode generation.

🔧 Recommended update
-                <version>3.1</version>
+                <version>3.14.1</version>

Additionally, use the --release flag instead of source/target for better cross-compilation guarantees (requires plugin 3.6+):

                 <configuration>
-                    <source>8</source>
-                    <target>8</target>
+                    <release>8</release>
                 </configuration>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<version>3.1</version>
<version>3.14.1</version>
🤖 Prompt for AI Agents
In @pom.xml at line 44, Replace the old maven-compiler-plugin version 3.1 with
3.14.1 in the pom (update the <version> under the maven-compiler-plugin plugin
definition) and switch any <source>/<target> configuration to the <release>
setting (e.g., <release>25</release>) so the plugin uses the --release flag for
JDK 25 compatibility; ensure the plugin entry references artifactId
maven-compiler-plugin and that the new version is applied to your build/plugins
or pluginManagement section.

<configuration>
<source>1.6</source>
<target>1.6</target>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
Expand Down
Loading