From d84d64f968114d7ddd6bf62c187a13ff23e7531e Mon Sep 17 00:00:00 2001 From: Josh Cummings Date: Thu, 13 Jan 2022 10:39:40 -0700 Subject: [PATCH] Add asciidoctor task Issue gh-613 --- build.gradle | 21 ++++++++++++++++++- buildSrc/build.gradle | 1 + .../gradle/convention/DocsPlugin.groovy | 21 ++++++++++++++++++- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 3a2f8e31..4ad63462 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,6 @@ buildscript { } dependencies { classpath "com.github.ben-manes:gradle-versions-plugin:0.17.0" - classpath('org.asciidoctor:asciidoctor-gradle-plugin:1.5.1') classpath("io.spring.gradle:spring-io-plugin:0.0.6.RELEASE") classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.12.0" classpath 'org.hidetake:gradle-ssh-plugin:2.10.1' @@ -28,4 +27,24 @@ description = "Spring LDAP" nohttp { allowlistFile = project.file("etc/nohttp/allowlist.lines") source.exclude "buildSrc/build/**" +} + +asciidoctor { + outputDir = new File("$buildDir/docs") + attributes([ + copycss : '', + icons : 'font', + 'source-highlighter': 'prettify', + sectanchors : '', + toc2: '', + idprefix: '', + idseparator: '-', + doctype: 'book', + numbered: '', + 'spring-ldap-version' : project.version, + revnumber : project.version + ]) + options = [ + eruby: 'erubis' + ] } \ No newline at end of file diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 7f5d01ea..6dcbfdb0 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -91,6 +91,7 @@ dependencies { implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.15' implementation 'io.spring.nohttp:nohttp-gradle:0.0.10' implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' + implementation 'org.asciidoctor:asciidoctor-gradle-jvm:3.3.2' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.26.1' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1' diff --git a/buildSrc/src/main/groovy/io/spring/gradle/convention/DocsPlugin.groovy b/buildSrc/src/main/groovy/io/spring/gradle/convention/DocsPlugin.groovy index c62fef79..a6bc3ac7 100644 --- a/buildSrc/src/main/groovy/io/spring/gradle/convention/DocsPlugin.groovy +++ b/buildSrc/src/main/groovy/io/spring/gradle/convention/DocsPlugin.groovy @@ -1,8 +1,10 @@ package io.spring.gradle.convention +import org.gradle.api.Action import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.Task +import org.gradle.api.artifacts.dsl.RepositoryHandler import org.gradle.api.plugins.BasePlugin import org.gradle.api.plugins.PluginManager import org.gradle.api.tasks.bundling.Zip @@ -17,9 +19,23 @@ public class DocsPlugin implements Plugin { PluginManager pluginManager = project.getPluginManager(); pluginManager.apply(BasePlugin); + pluginManager.apply("org.asciidoctor.jvm.convert"); pluginManager.apply(DeployDocsPlugin); pluginManager.apply(JavadocApiPlugin); + project.getGradle().afterProject(new Action() { + @Override + public void execute(Project p) { + RepositoryHandler repositories = p.getRepositories(); + if (repositories.isEmpty()) { + repositories.mavenCentral(); + repositories.maven(repo -> { + repo.setUrl(URI.create("https://repo.spring.io/release")); + }); + } + } + }); + Task docsZip = project.tasks.create('docsZip', Zip) { dependsOn 'api' group = 'Distribution' @@ -27,7 +43,10 @@ public class DocsPlugin implements Plugin { archiveClassifier = 'docs' description = "Builds -${archiveClassifier.get()} archive containing all " + "Docs for deployment at docs.spring.io" - + from(project.tasks.asciidoctor.outputs) { + into 'reference' + include '**' + } from(project.tasks.api.outputs) { into 'api' }