Skip to content

Commit 030b800

Browse files
committed
fix: rename custom Maven java.* properties to jdk.*
1 parent d7d485d commit 030b800

File tree

5 files changed

+62
-35
lines changed

5 files changed

+62
-35
lines changed

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88

99
## [Unreleased]
1010

11+
### Changed
12+
- **BREAKING** renamed `java.*` Maven properties to `jdk.*` to prevent clashing with the JVM’s standard system properties
13+
`java.version`/`java.vendor` (e.g. via `-Djava.*`) and misleading Maven/plugin prerequisite checks when Maven runs on a newer JDK while toolchains target an older JDK.
14+
15+
| Old property | New property
16+
| -------------------------------- | -------------
17+
| `java.version` | `jdk.version`
18+
| `java.vendor` | `jdk.vendor`
19+
| `java.version.unit-tests` | `jdk.version.unit-tests`
20+
| `java.vendor.unit-tests` | `jdk.vendor.unit-tests`
21+
| `java.version.integration-tests` | `jdk.version.integration-tests`
22+
| `java.vendor.integration-tests` | `jdk.vendor.integration-tests`
23+
| `java.version.verify` | `jdk.version.verify`
24+
| `java.vendor.verify` | `jdk.vendor.verify`
25+
- upgrade Eclipse Java Compiler 3.43.0 -> 3.44.0
26+
- Maven plugin upgrades:
27+
- central-publishing-maven-plugin 0.9.0 -> 0.10.0
28+
- checkstyle 12.2.0 -> 13.0.0
29+
- exec-maven-plugin 3.6.2 -> 3.6.3
30+
- groovy.version 5.0.3 -> 5.0.4
31+
- gmavenplus-plugin 4.2.1 -> 4.3.0
32+
- japicmp-maven-plugin 0.25.0 -> 0.25.4
33+
- license-maven-plugin) from 2.7.0 to 2.7.1
34+
- maven-release-plugin 3.3.0 -> 3.3.1
35+
- versions-maven-plugin 2.20.1 -> 2.21.0
36+
1137

1238
## [7.0.0] - 2025-12-10
1339

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,16 @@ Opinionated best practices [Maven](https://maven.apache.org) parent project with
2121
```xml
2222
<properties>
2323
<!-- use Oracle JDK 11 for compilation -->
24-
<java.version>11</java.version>
25-
<java.vendor>oracle</java.vendor>
24+
<jdk.version>11</jdk.version>
25+
<jdk.vendor>oracle</jdk.vendor>
2626

2727
<!-- use Open JDK 17 for running unit tests -->
28-
<java.version.unit-tests>17</java.version.unit-tests>
29-
<java.vendor.unit-tests>openjdk</java.vendor.unit-tests>
28+
<jdk.version.unit-tests>17</jdk.version.unit-tests>
29+
<jdk.vendor.unit-tests>openjdk</jdk.vendor.unit-tests>
3030

3131
<!-- use Open JDK 21 for running integration tests -->
32-
<java.version.integration-tests>21</java.version.integration-tests>
33-
<java.vendor.integration-tests>openjdk</java.vendor.integration-tests>
32+
<jdk.version.integration-tests>21</jdk.version.integration-tests>
33+
<jdk.vendor.integration-tests>openjdk</jdk.vendor.integration-tests>
3434
</properties>
3535
```
3636
- Configures the [Eclipse Java Compiler](https://mvnrepository.com/artifact/org.eclipse.jdt.core.compiler/ecj) instead of javac:

pom.xml

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -85,21 +85,21 @@ check for new dependency/plugin updates using:
8585
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
8686
<maven-resources-plugin.propertiesEncoding>ISO-8859-1</maven-resources-plugin.propertiesEncoding>
8787

88-
<java.version>17</java.version>
89-
<java.vendor>default</java.vendor>
88+
<jdk.version>17</jdk.version>
89+
<jdk.vendor>default</jdk.vendor>
9090

91-
<java.version.unit-tests>${java.version}</java.version.unit-tests>
92-
<java.vendor.unit-tests>${java.vendor}</java.vendor.unit-tests>
91+
<jdk.version.unit-tests>${jdk.version}</jdk.version.unit-tests>
92+
<jdk.vendor.unit-tests>${jdk.vendor}</jdk.vendor.unit-tests>
9393

94-
<java.version.integration-tests>${java.version.unit-tests}</java.version.integration-tests>
95-
<java.vendor.integration-tests>${java.vendor.unit-tests}</java.vendor.integration-tests>
94+
<jdk.version.integration-tests>${jdk.version.unit-tests}</jdk.version.integration-tests>
95+
<jdk.vendor.integration-tests>${jdk.vendor.unit-tests}</jdk.vendor.integration-tests>
9696

97-
<java.version.verify>${java.version}</java.version.verify>
98-
<java.vendor.verify>${java.vendor}</java.vendor.verify>
97+
<jdk.version.verify>${jdk.version}</jdk.version.verify>
98+
<jdk.vendor.verify>${jdk.vendor}</jdk.vendor.verify>
9999

100100
<!-- https://central.sonatype.com/artifact/org.eclipse.jdt/ecj/ -->
101101
<!-- https://github.com/eclipse-jdt/eclipse.jdt.core.git -->
102-
<eclipse-java-compiler.version>3.43.0</eclipse-java-compiler.version>
102+
<eclipse-java-compiler.version>3.44.0</eclipse-java-compiler.version>
103103

104104
<groovy.groupId>org.apache.groovy</groovy.groupId> <!-- old: org.codehaus.groovy -->
105105
<groovy.version>5.0.4</groovy.version>
@@ -329,7 +329,7 @@ check for new dependency/plugin updates using:
329329
/*
330330
* loading/locating eclipse Java compiler artifact
331331
*/
332-
def javaVersion = getProjectProp("java.version");
332+
def javaVersion = getProjectProp("jdk.version");
333333
def javaMajorVersion = Integer.parseInt(javaVersion.indexOf(".") > -1 ? javaVersion.substring(0, javaVersion.indexOf(".")) : javaVersion);
334334
def ecjVersion = javaMajorVersion < 17 ? "3.33.0" : project.properties["eclipse-java-compiler.version"]; def ecjArtifactMeta = artifactFactory.createArtifactWithClassifier("org.eclipse.jdt", "ecj", ecjVersion, "jar", null); def ecjArtifact = artifactResolver.resolve(new org.apache.maven.artifact.resolver.ArtifactResolutionRequest() .setArtifact(ecjArtifactMeta) .setLocalRepository(session.localRepository)
335335
.setRemoteRepositories(project.remoteArtifactRepositories)
@@ -351,7 +351,7 @@ check for new dependency/plugin updates using:
351351
*/
352352
def compileJDKSpec = [
353353
"version": javaVersion,
354-
"vendor": getProjectProp("java.vendor")
354+
"vendor": getProjectProp("jdk.vendor")
355355
]
356356
/* https://github.com/apache/maven/tree/master/maven-core/src/main/java/org/apache/maven/toolchain */
357357
def compileJDKs = session.lookup("org.apache.maven.toolchain.ToolchainManager")?.getToolchains(session, "jdk", compileJDKSpec);
@@ -808,7 +808,7 @@ check for new dependency/plugin updates using:
808808
<skip>${skip.enforcer.enforce-bytecode-version}</skip>
809809
<rules>
810810
<enforceBytecodeVersion>
811-
<maxJdkVersion>${java.version}</maxJdkVersion>
811+
<maxJdkVersion>${jdk.version}</maxJdkVersion>
812812
<ignoreOptionals>true</ignoreOptionals>
813813
<ignoredScopes>
814814
<ignoredScope>provided</ignoredScope>
@@ -958,7 +958,7 @@ check for new dependency/plugin updates using:
958958
</executions>
959959
<!-- the source and target configuration is added here for the maven-javadoc-plugin and the m2eclipse project configuration which rely on these values-->
960960
<configuration>
961-
<release>${java.version}</release>
961+
<release>${jdk.version}</release>
962962
</configuration>
963963
</plugin>
964964
<plugin>
@@ -994,7 +994,7 @@ check for new dependency/plugin updates using:
994994
-time<!-- display speed information. -->
995995
-showversion<!-- display the build number of the compiler -->
996996
-d "${project.build.outputDirectory}"
997-
--release ${java.version}
997+
--release ${jdk.version}
998998
-cp "${custom.compileClasspathElements}"<!-- <classpath /> doesn't work here as it misses runtime dependencies -->
999999
${custom.ecjSourcePaths}
10001000
</commandlineArgs>
@@ -1024,7 +1024,7 @@ check for new dependency/plugin updates using:
10241024
-time<!-- display speed information. -->
10251025
-showversion<!-- display the build number of the compiler -->
10261026
-d "${project.build.testOutputDirectory}"
1027-
--release ${java.version}
1027+
--release ${jdk.version}
10281028
-cp "${custom.test.classpathElements}"<!-- <classpath /> doesn't work here as it misses runtime dependencies -->
10291029
${custom.test.ecjSourcePaths}
10301030
</commandlineArgs>
@@ -1276,8 +1276,8 @@ check for new dependency/plugin updates using:
12761276
<configuration>
12771277
<toolchains>
12781278
<jdk>
1279-
<version>${java.version}</version>
1280-
<vendor>${java.vendor}</vendor>
1279+
<version>${jdk.version}</version>
1280+
<vendor>${jdk.vendor}</vendor>
12811281
</jdk>
12821282
</toolchains>
12831283
</configuration>
@@ -1291,8 +1291,8 @@ check for new dependency/plugin updates using:
12911291
<configuration>
12921292
<toolchains>
12931293
<jdk>
1294-
<version>${java.version.unit-tests}</version>
1295-
<vendor>${java.vendor.unit-tests}</vendor>
1294+
<version>${jdk.version.unit-tests}</version>
1295+
<vendor>${jdk.vendor.unit-tests}</vendor>
12961296
</jdk>
12971297
</toolchains>
12981298
</configuration>
@@ -1306,8 +1306,8 @@ check for new dependency/plugin updates using:
13061306
<configuration>
13071307
<toolchains>
13081308
<jdk>
1309-
<version>${java.version.integration-tests}</version>
1310-
<vendor>${java.vendor.integration-tests}</vendor>
1309+
<version>${jdk.version.integration-tests}</version>
1310+
<vendor>${jdk.vendor.integration-tests}</vendor>
13111311
</jdk>
13121312
</toolchains>
13131313
</configuration>
@@ -1321,8 +1321,8 @@ check for new dependency/plugin updates using:
13211321
<configuration>
13221322
<toolchains>
13231323
<jdk>
1324-
<version>${java.version.verify}</version>
1325-
<vendor>${java.vendor.verify}</vendor>
1324+
<version>${jdk.version.verify}</version>
1325+
<vendor>${jdk.vendor.verify}</vendor>
13261326
</jdk>
13271327
</toolchains>
13281328
</configuration>
@@ -1660,7 +1660,7 @@ check for new dependency/plugin updates using:
16601660
<configuration>
16611661
<skip>${skip.maven.javadoc}</skip>
16621662

1663-
<source>${java.version}</source>
1663+
<source>${jdk.version}</source>
16641664

16651665
<charset>${project.build.sourceEncoding}</charset>
16661666
<encoding>${project.build.sourceEncoding}</encoding>

src/test/project/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
<artifactId>vegardit-maven-parent.test</artifactId>
1919

2020
<properties>
21-
<java.version.unit-tests>21</java.version.unit-tests>
22-
<maven.surefire.args>-Djava.version.unit-tests=${java.version.unit-tests}</maven.surefire.args>
21+
<jdk.version.unit-tests>21</jdk.version.unit-tests>
22+
<maven.surefire.args>-Djdk.version.unit-tests=${jdk.version.unit-tests}</maven.surefire.args>
2323
<maven.deploy.skip>true</maven.deploy.skip>
2424
<central-publishing-maven-plugin.excludedArtifacts>${project.artifactId}</central-publishing-maven-plugin.excludedArtifacts>
2525
</properties>

src/test/project/src/test/java/com/vegardit/maven/parent/test/RuntimeJavaVersionTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public static int getJavaCompilerVersion(final Class<?> clazz) throws IOExceptio
2626
* This tests if the following config in the pom.xml is effective
2727
* <pre>{@code
2828
* <properties>
29-
* <java.version.unit-tests>21</java.version.unit-tests>
29+
* <jdk.version.unit-tests>21</jdk.version.unit-tests>
3030
* </properties>
3131
* }</pre>
3232
*/
@@ -35,8 +35,9 @@ void ensureRightJDKsAreUsed() throws Exception {
3535
System.out.println("Compile Java Version: " + getJavaCompilerVersion(Shape.class));
3636
System.out.println("Runtime Java Version: " + Runtime.version().feature());
3737
System.out.println("java.version: " + System.getProperty("java.version"));
38-
System.out.println("java.version.unit-tests: " + System.getProperty("java.version.unit-tests"));
38+
System.out.println("jdk.version: " + System.getProperty("jdk.version"));
39+
System.out.println("jdk.version.unit-tests: " + System.getProperty("jdk.version.unit-tests"));
3940
assertEquals(17, getJavaCompilerVersion(Shape.class));
40-
assertEquals(Runtime.version().feature(), Integer.getInteger("java.version.unit-tests"));
41+
assertEquals(Runtime.version().feature(), Integer.getInteger("jdk.version.unit-tests"));
4142
}
4243
}

0 commit comments

Comments
 (0)