Sometimes you want to have simple additional tasks in a build to generate certain output.
A good example is generation of HTML or PDF from Asciidoctor. With the following example you can just do gradle pdf
or gradle html
to create the desired output – instead of changing the „backends“ property in the build.gradle back and forth.
Have fun
buildscript { repositories { jcenter() } dependencies { classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3' classpath 'org.asciidoctor:asciidoctorj-diagram:1.5.0' classpath 'org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.11' classpath 'com.github.ben-manes:gradle-versions-plugin:0.12.0' } } apply plugin: 'org.asciidoctor.convert' apply plugin: 'com.github.ben-manes.versions' repositories { jcenter() } asciidoctorj { version = '1.6.0-alpha.3' } def asciidoctor = { requires = ['asciidoctor-diagram'] sources { include 'article.adoc' } backends = ['html5', 'pdf'] attributes 'source-highlighter' : 'coderay', 'coderay-linenums-mode' : 'table', //toc : 'left', icons : 'font', linkattrs : true, encoding : 'utf-8' } task('pdf', type: org.asciidoctor.gradle.AsciidoctorTask){ configure asciidoctor backends = ['pdf'] } task('html', type: org.asciidoctor.gradle.AsciidoctorTask){ configure asciidoctor backends = ['html5'] }
Update: To reuse the settings from a common block, we need to define the config in a variable and use it to configure the tasks with configure
as updated in the example.