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 b3f2ede194c..c70c6ea3271 100644
--- a/buildSrc/src/main/java/org/springframework/boot/build/AsciidoctorConventions.java
+++ b/buildSrc/src/main/java/org/springframework/boot/build/AsciidoctorConventions.java
@@ -27,8 +27,6 @@ import org.asciidoctor.gradle.jvm.AsciidoctorJExtension;
import org.asciidoctor.gradle.jvm.AsciidoctorJPlugin;
import org.asciidoctor.gradle.jvm.AsciidoctorTask;
import org.gradle.api.Project;
-import org.gradle.api.artifacts.Configuration;
-import org.gradle.api.artifacts.ConfigurationContainer;
import org.gradle.api.tasks.PathSensitivity;
import org.gradle.api.tasks.Sync;
@@ -40,9 +38,16 @@ import org.springframework.util.StringUtils;
* the plugin is applied:
*
*
+ * - The {@code https://repo.spring.io/release} Maven repository is configured and
+ * limited to dependencies in the following groups:
+ *
+ * - {@code io.spring.asciidoctor}
+ *
- {@code io.spring.asciidoctor.backends}
+ *
- {@code io.spring.docresources}
+ *
* - All warnings are made fatal.
*
- The version of AsciidoctorJ is upgraded to 2.4.3.
- *
- A {@code asciidoctorExtensions} configuration is created.
+ *
- An {@code asciidoctorExtensions} configuration is created.
*
- For each {@link AsciidoctorTask} (HTML only):
*
* - A task is created to sync the documentation resources to its output directory.
@@ -56,6 +61,7 @@ import org.springframework.util.StringUtils;
* the current version, etc.
*
- {@link AbstractAsciidoctorTask#baseDirFollowsSourceDir() baseDirFollowsSourceDir()}
* is enabled.
+ *
- {@code asciidoctorExtensions} is added to the task's configurations.
*
*
*
@@ -63,13 +69,13 @@ import org.springframework.util.StringUtils;
*/
class AsciidoctorConventions {
- private static final String EXTENSIONS_CONFIGURATION = "asciidoctorExtensions";
-
private static final String ASCIIDOCTORJ_VERSION = "2.4.3";
+ private static final String EXTENSIONS_CONFIGURATION_NAME = "asciidoctorExtensions";
+
void apply(Project project) {
project.getPlugins().withType(AsciidoctorJPlugin.class, (asciidoctorPlugin) -> {
- configureDocResourcesRepository(project);
+ configureDocumentationDependenciesRepository(project);
makeAllWarningsFatal(project);
upgradeAsciidoctorJVersion(project);
createAsciidoctorExtensionsConfiguration(project);
@@ -78,10 +84,14 @@ class AsciidoctorConventions {
});
}
- private void configureDocResourcesRepository(Project project) {
+ private void configureDocumentationDependenciesRepository(Project project) {
project.getRepositories().maven((mavenRepo) -> {
- mavenRepo.setUrl(URI.create("https://repo.spring.io/snapshot"));
- mavenRepo.mavenContent((mavenContent) -> mavenContent.includeGroup("io.spring.asciidoctor.backends"));
+ mavenRepo.setUrl(URI.create("https://repo.spring.io/release"));
+ mavenRepo.mavenContent((mavenContent) -> {
+ mavenContent.includeGroup("io.spring.asciidoctor");
+ mavenContent.includeGroup("io.spring.asciidoctor.backends");
+ mavenContent.includeGroup("io.spring.docresources");
+ });
});
}
@@ -94,20 +104,18 @@ class AsciidoctorConventions {
}
private void createAsciidoctorExtensionsConfiguration(Project project) {
- ConfigurationContainer configurations = project.getConfigurations();
- Configuration asciidoctorExtensions = configurations.maybeCreate(EXTENSIONS_CONFIGURATION);
- asciidoctorExtensions.getDependencies().add(
- project.getDependencies().create("io.spring.asciidoctor.backends:spring-asciidoctor-backends:0.0.1"));
- asciidoctorExtensions.getDependencies()
- .add(project.getDependencies().create("org.asciidoctor:asciidoctorj-pdf:1.5.3"));
- Configuration dependencyManagement = configurations.findByName("dependencyManagement");
- if (dependencyManagement != null) {
- asciidoctorExtensions.extendsFrom(dependencyManagement);
- }
+ project.getConfigurations().create(EXTENSIONS_CONFIGURATION_NAME, (configuration) -> {
+ project.getConfigurations().matching((candidate) -> "dependencyManagement".equals(candidate.getName()))
+ .all((dependencyManagement) -> configuration.extendsFrom(dependencyManagement));
+ configuration.getDependencies().add(project.getDependencies()
+ .create("io.spring.asciidoctor.backends:spring-asciidoctor-backends:0.0.1"));
+ configuration.getDependencies()
+ .add(project.getDependencies().create("org.asciidoctor:asciidoctorj-pdf:1.5.3"));
+ });
}
private void configureAsciidoctorTask(Project project, AbstractAsciidoctorTask asciidoctorTask) {
- asciidoctorTask.configurations(EXTENSIONS_CONFIGURATION);
+ asciidoctorTask.configurations(EXTENSIONS_CONFIGURATION_NAME);
configureCommonAttributes(project, asciidoctorTask);
configureOptions(asciidoctorTask);
asciidoctorTask.baseDirFollowsSourceDir();
diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle
index 96711b0daf3..91759528ed4 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle
@@ -168,7 +168,6 @@ task dependencyVersions(type: org.springframework.boot.build.constraints.Extract
tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) {
dependsOn dependencyVersions
- baseDirFollowsSourceDir()
doFirst {
def versionConstraints = dependencyVersions.versionConstraints
def integrationVersion = versionConstraints["org.springframework.integration:spring-integration-core"]
diff --git a/spring-boot-project/spring-boot-docs/build.gradle b/spring-boot-project/spring-boot-docs/build.gradle
index d3e3a7d1f08..1110634080e 100644
--- a/spring-boot-project/spring-boot-docs/build.gradle
+++ b/spring-boot-project/spring-boot-docs/build.gradle
@@ -17,16 +17,6 @@ configurations {
testSlices
}
-repositories {
- maven {
- url "https://repo.spring.io/release"
- mavenContent {
- includeGroup "io.spring.asciidoctor"
- includeGroup "io.spring.asciidoctor.backends"
- }
- }
-}
-
jar {
enabled = false
}
@@ -224,7 +214,6 @@ task documentConfigurationProperties(type: org.springframework.boot.build.contex
tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) {
dependsOn dependencyVersions
- baseDirFollowsSourceDir()
asciidoctorj {
fatalWarnings = ['^((?!successfully validated).)*$']
}
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle
index 3341dc8b816..5f904bda588 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle
+++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle
@@ -13,16 +13,6 @@ configurations {
documentation
}
-repositories {
- maven {
- url "https://repo.spring.io/release"
- mavenContent {
- includeGroup "io.spring.asciidoctor"
- includeGroup "io.spring.asciidoctor.backends"
- }
- }
-}
-
dependencies {
asciidoctorExtensions("io.spring.asciidoctor:spring-asciidoctor-extensions-section-ids")