You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
243 lines
9.0 KiB
243 lines
9.0 KiB
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 { |
|
testSlices project(path: ':spring-boot-project:spring-boot-test-autoconfigure', configuration: 'testSliceMetadata') |
|
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') |
|
actuatorApiDocumentation project(path: ':spring-boot-project:spring-boot-actuator-autoconfigure', configuration: 'documentation') |
|
mavenPluginDocumentation project(path: ':spring-boot-project:spring-boot-tools:spring-boot-maven-plugin', configuration: 'documentation') |
|
} |
|
|
|
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 |
|
} |
|
} |
|
}
|
|
|