// SPDX-FileCopyrightText: 2021 Paul Schaub // // SPDX-License-Identifier: Apache-2.0 plugins { id 'application' id 'org.asciidoctor.jvm.convert' version '3.3.2' } dependencies { // JUnit testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitVersion" // Mocking Components testImplementation "org.mockito:mockito-core:$mockitoVersion" // SOP implementation(project(":sop-java")) testImplementation(project(":sop-java-testfixtures")) // CLI implementation "info.picocli:picocli:$picocliVersion" annotationProcessor "info.picocli:picocli-codegen:$picocliVersion" // @Nonnull, @Nullable... implementation "com.google.code.findbugs:jsr305:$jsrVersion" } mainClassName = 'sop.cli.picocli.SopCLI' application { mainClass = mainClassName } jar { dependsOn(":sop-java:jar") duplicatesStrategy(DuplicatesStrategy.EXCLUDE) manifest { attributes 'Main-Class': "$mainClassName" } from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } { exclude "META-INF/*.SF" exclude "META-INF/*.DSA" exclude "META-INF/*.RSA" } } task generateManpageAsciiDoc(type: JavaExec) { dependsOn(classes) group = "Documentation" description = "Generate AsciiDoc manpage" classpath(configurations.annotationProcessor, sourceSets.main.runtimeClasspath) systemProperty("user.language", "en") main 'picocli.codegen.docgen.manpage.ManPageGenerator' args mainClassName, "--outdir=${project.buildDir}/generated-picocli-docs", "-v" //, "--template-dir=src/docs/mantemplates" } apply plugin: 'org.asciidoctor.jvm.convert' asciidoctor { attributes 'reproducible': '' dependsOn(generateManpageAsciiDoc) sourceDir = file("${project.buildDir}/generated-picocli-docs") outputDir = file("${project.buildDir}/docs") logDocuments = true outputOptions { backends = ['manpage', 'html5'] } }