
Replace Gradle single quote strings with the double quote form whenever possible. The change helps to being consistency to the dependencies section where mostly single quotes were used, but occasionally double quotes were required due to `${}` references.
249 lines
9.1 KiB
Groovy
249 lines
9.1 KiB
Groovy
plugins {
|
|
id "java-base"
|
|
id "org.asciidoctor.jvm.convert"
|
|
id "org.asciidoctor.jvm.pdf"
|
|
id "org.springframework.boot.conventions"
|
|
id "org.springframework.boot.deployed"
|
|
}
|
|
|
|
configurations {
|
|
actuatorApiDocumentation
|
|
autoConfiguration
|
|
configurationProperties
|
|
gradlePluginDocumentation
|
|
mavenPluginDocumentation
|
|
testSlices
|
|
}
|
|
|
|
dependencies {
|
|
actuatorApiDocumentation project(path: ":spring-boot-project:spring-boot-actuator-autoconfigure", configuration: "documentation")
|
|
|
|
autoConfiguration project(path: ":spring-boot-project:spring-boot-autoconfigure", configuration: "autoConfigurationMetadata")
|
|
autoConfiguration project(path: ":spring-boot-project:spring-boot-actuator-autoconfigure", configuration: "autoConfigurationMetadata")
|
|
autoConfiguration project(path: ":spring-boot-project:spring-boot-devtools", configuration: "autoConfigurationMetadata")
|
|
|
|
configurationProperties project(path: ":spring-boot-project:spring-boot", configuration: "configurationPropertiesMetadata")
|
|
configurationProperties project(path: ":spring-boot-project:spring-boot-actuator", configuration: "configurationPropertiesMetadata")
|
|
configurationProperties project(path: ":spring-boot-project:spring-boot-actuator-autoconfigure", configuration: "configurationPropertiesMetadata")
|
|
configurationProperties project(path: ":spring-boot-project:spring-boot-autoconfigure", configuration: "configurationPropertiesMetadata")
|
|
configurationProperties project(path: ":spring-boot-project:spring-boot-devtools", configuration: "configurationPropertiesMetadata")
|
|
|
|
gradlePluginDocumentation project(path: ":spring-boot-project:spring-boot-tools:spring-boot-gradle-plugin", configuration: "documentation")
|
|
|
|
mavenPluginDocumentation project(path: ":spring-boot-project:spring-boot-tools:spring-boot-maven-plugin", configuration: "documentation")
|
|
|
|
testSlices project(path: ":spring-boot-project:spring-boot-test-autoconfigure", configuration: "testSliceMetadata")
|
|
}
|
|
|
|
task dependencyVersions(type: org.springframework.boot.build.constraints.ExtractVersionConstraints) {
|
|
enforcedPlatform(":spring-boot-project:spring-boot-dependencies")
|
|
}
|
|
|
|
task javadoc(type: Javadoc) {
|
|
dependsOn dependencyVersions
|
|
project.rootProject.gradle.projectsEvaluated {
|
|
Set<Project> publishedProjects = rootProject.subprojects.findAll { it != project}
|
|
.findAll { it.plugins.hasPlugin(JavaPlugin) && it.plugins.hasPlugin(MavenPublishPlugin) }
|
|
.findAll { it.name != "spring-boot-maven-plugin" && it.name != "spring-boot-gradle-plugin" }
|
|
dependsOn publishedProjects.javadoc
|
|
source publishedProjects.javadoc.source
|
|
classpath = project.files(publishedProjects.javadoc.classpath)
|
|
destinationDir = project.file "${buildDir}/docs/javadoc"
|
|
options {
|
|
author = true
|
|
docTitle = "Spring Boot ${project.version} API"
|
|
encoding = "UTF-8"
|
|
memberLevel = "protected"
|
|
outputLevel = "quiet"
|
|
source = "1.8"
|
|
splitIndex = true
|
|
stylesheetFile = file("src/main/javadoc/spring-javadoc.css")
|
|
use = true
|
|
windowTitle = "Spring Boot ${project.version} API"
|
|
}
|
|
doFirst {
|
|
def versionConstraints = dependencyVersions.versionConstraints
|
|
def tomcatVersion = "${versionConstraints["org.apache.tomcat:tomcat-annotations-api"]}"
|
|
def tomcatDocsVersion = tomcatVersion.substring(0, tomcatVersion.lastIndexOf("."));
|
|
options.links = [
|
|
"https://docs.oracle.com/javase/8/docs/api/",
|
|
"https://docs.oracle.com/javaee/7/api/",
|
|
"https://docs.spring.io/spring-framework/docs/${versionConstraints["org.springframework:spring-core"]}/javadoc-api/",
|
|
"https://docs.spring.io/spring-security/site/docs/${versionConstraints["org.springframework.security:spring-security-core"]}/api/",
|
|
"https://tomcat.apache.org/tomcat-${tomcatDocsVersion}-doc/api/",
|
|
"https://www.eclipse.org/jetty/javadoc/${versionConstraints["org.eclipse.jetty:jetty-server"]}/",
|
|
"https://www.thymeleaf.org/apidocs/thymeleaf/${versionConstraints["org.thymeleaf:thymeleaf"]}/"
|
|
] as String[]
|
|
}
|
|
}
|
|
}
|
|
|
|
task documentTestSlices(type: org.springframework.boot.build.test.autoconfigure.DocumentTestSlices) {
|
|
testSlices = configurations.testSlices
|
|
outputFile = file("${buildDir}/docs/generated/test-slice-auto-configuration.adoc")
|
|
}
|
|
|
|
task documentStarters(type: org.springframework.boot.build.starters.DocumentStarters) {
|
|
outputDir = file("${buildDir}/docs/generated/starters/")
|
|
}
|
|
|
|
task documentAutoConfigurationClasses(type: org.springframework.boot.build.autoconfigure.DocumentAutoConfigurationClasses) {
|
|
autoConfiguration = configurations.autoConfiguration
|
|
outputDir = file("${buildDir}/docs/generated/auto-configuration-classes/")
|
|
}
|
|
|
|
task documentDependencyVersions(type: org.springframework.boot.build.constraints.DocumentConstrainedVersions) {
|
|
dependsOn dependencyVersions
|
|
constrainedVersions.set(providers.provider { dependencyVersions.constrainedVersions })
|
|
outputFile = file("${buildDir}/docs/generated/dependency-versions.adoc")
|
|
}
|
|
|
|
task documentConfigurationProperties(type: org.springframework.boot.build.context.properties.DocumentConfigurationProperties) {
|
|
configurationPropertyMetadata = configurations.configurationProperties
|
|
outputDir = file("${buildDir}/docs/generated/config-docs/")
|
|
}
|
|
|
|
tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) {
|
|
dependsOn dependencyVersions
|
|
baseDirFollowsSourceDir()
|
|
doFirst {
|
|
def versionConstraints = dependencyVersions.versionConstraints
|
|
attributes "jetty-version": versionConstraints["org.eclipse.jetty:jetty-server"],
|
|
"jooq-version": versionConstraints["org.jooq:jooq"],
|
|
"spring-amqp-version": versionConstraints["org.springframework.amqp:spring-amqp"],
|
|
"spring-batch-version": versionConstraints["org.springframework.batch:spring-batch-core"],
|
|
"spring-boot-version": project.version,
|
|
"spring-data-commons-version": versionConstraints["org.springframework.data:spring-data-commons"],
|
|
"spring-data-couchbase-version": versionConstraints["org.springframework.data:spring-data-couchbase"],
|
|
"spring-data-jdbc-version": versionConstraints["org.springframework.data:spring-data-jdbc"],
|
|
"spring-data-jpa-version": versionConstraints["org.springframework.data:spring-data-jpa"],
|
|
"spring-data-mongodb-version": versionConstraints["org.springframework.data:spring-data-mongodb"],
|
|
"spring-data-neo4j-version": versionConstraints["org.springframework.data:spring-data-neo4j"],
|
|
"spring-data-rest-version": versionConstraints["org.springframework.data:spring-data-rest-core"],
|
|
"spring-data-solr-version": versionConstraints["org.springframework.data:spring-data-solr"],
|
|
"spring-framework-version": versionConstraints["org.springframework:spring-core"],
|
|
"spring-integration-version": versionConstraints["org.springframework.integration:spring-integration-core"],
|
|
"spring-security-version": versionConstraints["org.springframework.security:spring-security-core"],
|
|
"spring-webservices-version": versionConstraints["org.springframework.ws:spring-ws-core"]
|
|
}
|
|
}
|
|
|
|
asciidoctor {
|
|
sources {
|
|
include "*.htmlsingleadoc"
|
|
}
|
|
}
|
|
|
|
asciidoctorPdf {
|
|
sources {
|
|
include "*.pdfadoc"
|
|
}
|
|
}
|
|
|
|
task asciidoctorMultipage(type: org.asciidoctor.gradle.jvm.AsciidoctorTask) {
|
|
sources {
|
|
include "*.htmladoc"
|
|
include "*.adoc"
|
|
}
|
|
}
|
|
|
|
syncDocumentationSourceForAsciidoctor {
|
|
dependsOn documentTestSlices
|
|
dependsOn documentStarters
|
|
dependsOn documentAutoConfigurationClasses
|
|
dependsOn documentDependencyVersions
|
|
dependsOn documentConfigurationProperties
|
|
from("${buildDir}/docs/generated") {
|
|
into "asciidoc"
|
|
}
|
|
from ("src/main/java") {
|
|
into "main/java"
|
|
}
|
|
from ("src/test/java") {
|
|
into "test/java"
|
|
}
|
|
}
|
|
|
|
syncDocumentationSourceForAsciidoctorMultipage {
|
|
dependsOn documentTestSlices
|
|
dependsOn documentStarters
|
|
dependsOn documentAutoConfigurationClasses
|
|
dependsOn documentDependencyVersions
|
|
dependsOn documentConfigurationProperties
|
|
from("${buildDir}/docs/generated") {
|
|
into "asciidoc"
|
|
}
|
|
from ("src/main/java") {
|
|
into "main/java"
|
|
}
|
|
from ("src/test/java") {
|
|
into "test/java"
|
|
}
|
|
}
|
|
|
|
syncDocumentationSourceForAsciidoctorPdf {
|
|
dependsOn documentTestSlices
|
|
dependsOn documentStarters
|
|
dependsOn documentAutoConfigurationClasses
|
|
dependsOn documentDependencyVersions
|
|
dependsOn documentConfigurationProperties
|
|
from("${buildDir}/docs/generated") {
|
|
into "asciidoc"
|
|
}
|
|
from ("src/main/java") {
|
|
into "main/java"
|
|
}
|
|
from ("src/test/java") {
|
|
into "test/java"
|
|
}
|
|
}
|
|
|
|
task zip(type: Zip) {
|
|
dependsOn asciidoctor,
|
|
asciidoctorMultipage,
|
|
asciidoctorPdf,
|
|
configurations.gradlePluginDocumentation,
|
|
configurations.actuatorApiDocumentation,
|
|
configurations.mavenPluginDocumentation
|
|
duplicatesStrategy "fail"
|
|
from(asciidoctor.outputDir) {
|
|
into "reference/htmlsingle"
|
|
}
|
|
from(asciidoctorPdf.outputDir) {
|
|
into "reference/pdf"
|
|
}
|
|
from(asciidoctorMultipage.outputDir) {
|
|
into "reference/html"
|
|
}
|
|
from(javadoc) {
|
|
into "api"
|
|
}
|
|
into("gradle-plugin") {
|
|
from {
|
|
zipTree(configurations.gradlePluginDocumentation.singleFile)
|
|
}
|
|
}
|
|
into("actuator-api") {
|
|
from {
|
|
zipTree(configurations.actuatorApiDocumentation.singleFile)
|
|
}
|
|
}
|
|
into("maven-plugin") {
|
|
from {
|
|
zipTree(configurations.mavenPluginDocumentation.singleFile)
|
|
}
|
|
}
|
|
}
|
|
|
|
artifacts {
|
|
archives zip
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
deployment(MavenPublication) {
|
|
artifact zip
|
|
}
|
|
}
|
|
}
|