2023-06-05 10:50:00 +02:00
|
|
|
plugins {
|
2023-09-22 16:50:38 +02:00
|
|
|
// Apply the common versioning conventions.
|
|
|
|
|
id 'org.jdrupes.vmoperator.versioning-conventions'
|
|
|
|
|
|
2023-06-05 10:50:00 +02:00
|
|
|
id 'org.ajoberstar.git-publish'
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-22 16:50:38 +02:00
|
|
|
repositories {
|
|
|
|
|
// Use Maven Central for resolving dependencies.
|
|
|
|
|
mavenCentral()
|
|
|
|
|
}
|
|
|
|
|
|
2023-06-05 10:50:00 +02:00
|
|
|
var docDestinationDir = file("${rootProject.buildDir}/javadoc")
|
|
|
|
|
|
|
|
|
|
configurations {
|
|
|
|
|
javadocTaglets
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
configurations {
|
|
|
|
|
markdownDoclet
|
|
|
|
|
javadocTaglets
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
|
markdownDoclet "org.jdrupes.mdoclet:doclet:3.1.0"
|
|
|
|
|
javadocTaglets "org.jdrupes.taglets:plantuml-taglet:2.1.0"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
task javadocResources(type: Copy) {
|
|
|
|
|
into file(docDestinationDir)
|
|
|
|
|
from ("${rootProject.rootDir}/misc") {
|
|
|
|
|
include '*.woff2'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-01 22:31:53 +02:00
|
|
|
task apidocs (type: JavaExec) {
|
2023-06-05 10:50:00 +02:00
|
|
|
// Does not work on JitPack, no /usr/bin/dot
|
|
|
|
|
enabled = JavaVersion.current() == JavaVersion.VERSION_17
|
|
|
|
|
|
|
|
|
|
dependsOn javadocResources
|
|
|
|
|
|
|
|
|
|
outputs.dir(docDestinationDir)
|
|
|
|
|
|
|
|
|
|
inputs.file rootProject.file('overview.md')
|
|
|
|
|
inputs.file "${rootProject.rootDir}/misc/stylesheet.css"
|
|
|
|
|
|
|
|
|
|
jvmArgs = ['--add-exports=jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED',
|
|
|
|
|
'--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED']
|
|
|
|
|
main = 'jdk.javadoc.internal.tool.Main'
|
|
|
|
|
|
|
|
|
|
gradle.projectsEvaluated {
|
|
|
|
|
// Make sure that other projects' compileClasspaths are resolved
|
|
|
|
|
rootProject.subprojects
|
|
|
|
|
.findAll({project -> project.name.startsWith("org.jdrupes")})
|
|
|
|
|
.each{project -> dependsOn project.tasks.getByName('assemble')}
|
|
|
|
|
|
|
|
|
|
classpath = files(rootProject.subprojects
|
|
|
|
|
.findAll({project -> project.name.startsWith("org.jdrupes")})
|
|
|
|
|
.collect {project -> project.sourceSets.main.compileClasspath})
|
|
|
|
|
var sourceDirs = rootProject.subprojects
|
|
|
|
|
.findAll({project -> project.name.startsWith("org.jdrupes")})
|
|
|
|
|
.collect{project -> project.sourceSets.main.allJava.getSrcDirs() }
|
|
|
|
|
.flatten().findAll(dir -> dir.exists())
|
|
|
|
|
sourceDirs.each { inputs.dir(it) }
|
|
|
|
|
|
|
|
|
|
args = ['-doctitle', """VM-Operator
|
|
|
|
|
(runner.qemu-${-> findProject(':org.jdrupes.vmoperator.runner.qemu').version},
|
|
|
|
|
manager-${-> findProject(':org.jdrupes.vmoperator.manager').version})""",
|
2023-08-13 11:33:51 +02:00
|
|
|
'-package',
|
2023-06-05 10:50:00 +02:00
|
|
|
'-use',
|
|
|
|
|
'-linksource',
|
|
|
|
|
'-link', 'https://docs.oracle.com/en/java/javase/17/docs/api/',
|
|
|
|
|
'-link', 'https://mnlipp.github.io/jgrapes/latest-release/javadoc/',
|
|
|
|
|
'-link', 'https://freemarker.apache.org/docs/api/',
|
|
|
|
|
'--add-exports', 'jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED',
|
|
|
|
|
'--add-exports', 'jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED',
|
|
|
|
|
'-doclet', 'org.jdrupes.mdoclet.MDoclet',
|
|
|
|
|
'-docletpath', configurations.markdownDoclet.files.asType(List).join(":"),
|
|
|
|
|
'--disable-auto-highlight',
|
|
|
|
|
'-tagletpath', configurations.javadocTaglets.files.asType(List).join(":"),
|
|
|
|
|
'-taglet', 'org.jdrupes.taglets.plantUml.PlantUml',
|
|
|
|
|
'-taglet', 'org.jdrupes.taglets.plantUml.StartUml',
|
|
|
|
|
'-taglet', 'org.jdrupes.taglets.plantUml.EndUml',
|
|
|
|
|
'-overview', "${rootProject.file('overview.md')}",
|
|
|
|
|
'-d', docDestinationDir,
|
|
|
|
|
'-sourcepath', sourceDirs.join(':'),
|
|
|
|
|
'-subpackages', 'org.jdrupes',
|
|
|
|
|
'-bottom', rootProject.file("misc/javadoc.bottom.txt").text,
|
|
|
|
|
'--allow-script-in-comments',
|
|
|
|
|
'-Xdoclint:-html',
|
|
|
|
|
'--main-stylesheet', "${rootProject.rootDir}/misc/stylesheet.css",
|
|
|
|
|
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.formats.html=ALL-UNNAMED',
|
|
|
|
|
'-quiet'
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ignoreExitValue true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Prepare github authentication for plugins
|
|
|
|
|
if (System.properties['org.ajoberstar.grgit.auth.username'] == null) {
|
|
|
|
|
System.setProperty('org.ajoberstar.grgit.auth.username',
|
|
|
|
|
project.rootProject.properties['repo.access.token'] ?: "nouser")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gitPublish {
|
|
|
|
|
repoUri = 'https://github.com/mnlipp/VM-Operator.git'
|
|
|
|
|
branch = 'gh-pages'
|
|
|
|
|
contents {
|
|
|
|
|
from("${rootProject.buildDir}/javadoc") {
|
|
|
|
|
into 'javadoc'
|
|
|
|
|
}
|
2023-08-18 15:33:54 +02:00
|
|
|
if (!findProject(':org.jdrupes.vmoperator.runner.qemu').isSnapshot
|
|
|
|
|
&& !findProject(':org.jdrupes.vmoperator.manager').isSnapshot) {
|
2023-06-05 10:50:00 +02:00
|
|
|
from("${rootProject.buildDir}/javadoc") {
|
|
|
|
|
into 'latest-release/javadoc'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
preserve { include '**/*' }
|
|
|
|
|
commitMessage = "Updated."
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gradle.projectsEvaluated {
|
|
|
|
|
tasks.gitPublishReset.mustRunAfter subprojects.tasks
|
|
|
|
|
.collect { tc -> tc.findByName("build") }.flatten()
|
|
|
|
|
tasks.gitPublishReset.mustRunAfter subprojects.tasks
|
|
|
|
|
.collect { tc -> tc.findByName("test") }.flatten()
|
2023-09-01 22:31:53 +02:00
|
|
|
tasks.gitPublishCopy.dependsOn apidocs
|
2023-06-05 10:50:00 +02:00
|
|
|
}
|