You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
242 lines
8.8 KiB
Groovy
242 lines
8.8 KiB
Groovy
5 years ago
|
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
|
||
|
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-9.0-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
|
||
|
}
|
||
|
}
|
||
|
}
|