plugins { id 'java-gradle-plugin' id 'maven-publish' id 'org.asciidoctor.jvm.convert' id 'org.asciidoctor.jvm.pdf' id 'org.springframework.boot.conventions' id 'org.springframework.boot.internal-dependency-management' id 'org.springframework.boot.maven-repository' id 'org.springframework.boot.optional-dependencies' } description = 'Spring Boot Gradle Plugin' configurations { asciidoctorExtensions documentation } repositories { maven { url 'https://repo.spring.io/release' mavenContent { includeGroup 'io.spring.asciidoctor' } } } dependencies { api platform(project(':spring-boot-project:spring-boot-dependencies')) asciidoctorExtensions 'io.spring.asciidoctor:spring-asciidoctor-extensions-block-switch:0.3.0.RELEASE' implementation project(':spring-boot-project:spring-boot-tools:spring-boot-loader-tools') implementation 'io.spring.gradle:dependency-management-plugin' implementation 'org.apache.commons:commons-compress' implementation 'org.springframework:spring-core' optional platform(project(':spring-boot-project:spring-boot-dependencies')) optional 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50' testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.assertj:assertj-core' testImplementation 'org.mockito:mockito-core' } gradlePlugin { plugins { springBootPlugin { id = 'org.springframework.boot' implementationClass = 'org.springframework.boot.gradle.plugin.SpringBootPlugin' } } } jar { manifest { attributes 'Implementation-Version': project.version } } task dependencyVersions(type: org.springframework.boot.build.constraints.ExtractVersionConstraints) { enforcedPlatform(':spring-boot-project:spring-boot-dependencies') } tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) { dependsOn dependencyVersions doFirst { attributes 'dependency-management-plugin-version': dependencyVersions.versionConstraints['io.spring.gradle:dependency-management-plugin'] } } asciidoctor { configurations 'asciidoctorExtensions' sources { include 'index.adoc' } attributes 'stylesheet': 'css/style.css' } asciidoctorPdf { sources { include 'index.adoc' } } javadoc { options { author = true docTitle = "Spring Boot Gradle Plugin ${project.version} API" encoding = 'UTF-8' memberLevel = 'protected' outputLevel = 'quiet' splitIndex = true use = true windowTitle = "Spring Boot Gradle Plugin ${project.version} API" } } task zip(type: Zip) { dependsOn asciidoctor, asciidoctorPdf duplicatesStrategy 'fail' from(asciidoctorPdf.outputDir) { into 'reference/pdf' } from(asciidoctor.outputDir) { into 'reference/html' } from(javadoc) { into 'api' } } artifacts { 'documentation' zip }