diff --git a/buildSrc/src/main/java/org/springframework/boot/build/AsciidoctorConventions.java b/buildSrc/src/main/java/org/springframework/boot/build/AsciidoctorConventions.java index b67f8d52af..09adca41b6 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/AsciidoctorConventions.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/AsciidoctorConventions.java @@ -26,6 +26,7 @@ import org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask; import org.asciidoctor.gradle.jvm.AsciidoctorJExtension; import org.asciidoctor.gradle.jvm.AsciidoctorJPlugin; import org.asciidoctor.gradle.jvm.AsciidoctorTask; +import org.gradle.api.JavaVersion; import org.gradle.api.Project; import org.gradle.api.tasks.PathSensitivity; import org.gradle.api.tasks.Sync; @@ -118,6 +119,7 @@ class AsciidoctorConventions { asciidoctorTask.configurations(EXTENSIONS_CONFIGURATION_NAME); configureCommonAttributes(project, asciidoctorTask); configureOptions(asciidoctorTask); + configureForkOptions(asciidoctorTask); asciidoctorTask.baseDirFollowsSourceDir(); createSyncDocumentationSourceTask(project, asciidoctorTask); if (asciidoctorTask instanceof AsciidoctorTask) { @@ -136,6 +138,14 @@ class AsciidoctorConventions { asciidoctorTask.attributes(attributes); } + // See https://github.com/asciidoctor/asciidoctor-gradle-plugin/issues/597 + private void configureForkOptions(AbstractAsciidoctorTask asciidoctorTask) { + if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_16)) { + asciidoctorTask.forkOptions((options) -> options.jvmArgs("--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", + "--add-opens", "java.base/java.io=ALL-UNNAMED")); + } + } + private String determineGitHubTag(Project project) { String version = "v" + project.getVersion(); return (version.endsWith("-SNAPSHOT")) ? "2.7.x" : version;