You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2026/09/11 06:50:10 UTC
(maven-javadoc-plugin) branch master updated: Accept the 1.x spelling for the release version
This is an automated email from the ASF dual-hosted git repository.
slachiewicz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-javadoc-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new 89126154 Accept the 1.x spelling for the release version
89126154 is described below
commit 89126154b60328815f89c48988e4763d1b19d462
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Thu Sep 10 23:20:48 2026 +0200
Accept the 1.x spelling for the release version
javadoc's --release takes only the plain feature number and rejects 1.8
with "release version 1.8 not supported". Mapping 1.5 to 1.8 onto 5 to 8
matches what plexus-compiler does for javac, so a parent POM can derive
maven.compiler.release from a child's target in either spelling.
---
.../apache/maven/plugins/javadoc/AbstractJavadocMojo.java | 2 +-
.../org/apache/maven/plugins/javadoc/JavadocUtil.java | 15 +++++++++++++++
.../org/apache/maven/plugins/javadoc/JavadocUtilTest.java | 9 +++++++++
3 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
index 2214137b..69aa2dff 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
@@ -4581,7 +4581,7 @@ public abstract class AbstractJavadocMojo extends AbstractMojo {
if (javadocRuntimeVersion.isAtLeast("9") && isReleaseSet()) {
arguments.add("--release");
- arguments.add(release);
+ arguments.add(JavadocUtil.toReleaseArgument(release));
} else {
addArgIfNotEmpty(arguments, "-source", JavadocUtil.quotedArgument(source));
}
diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
index c8ab7086..58c9c415 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
@@ -1602,4 +1602,19 @@ public class JavadocUtil {
}
return false;
}
+
+ /**
+ * Maps the {@code 1.x} spelling that {@code -source} accepts onto the plain feature number, the only
+ * form {@code --release} takes: {@code 1.8} becomes {@code 8}. Any other value is passed through
+ * unchanged, so the javadoc tool still reports releases it does not support.
+ *
+ * @param release the configured release version, never empty
+ * @return the value to pass to {@code --release}
+ */
+ public static String toReleaseArgument(String release) {
+ if (release.length() == 3 && release.startsWith("1.") && release.charAt(2) >= '1' && release.charAt(2) <= '9') {
+ return release.substring(2);
+ }
+ return release;
+ }
}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java b/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
index 8c7b8f4a..5f118b83 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
@@ -749,4 +749,13 @@ class JavadocUtilTest {
throw throwable;
}
}
+
+ @Test
+ void toReleaseArgumentMapsTheLegacySpelling() {
+ assertEquals("8", JavadocUtil.toReleaseArgument("1.8"));
+ assertEquals("5", JavadocUtil.toReleaseArgument("1.5"));
+ assertEquals("8", JavadocUtil.toReleaseArgument("8"));
+ assertEquals("17", JavadocUtil.toReleaseArgument("17"));
+ assertEquals("1.10", JavadocUtil.toReleaseArgument("1.10"));
+ }
}