hibernate-orm/documentation/documentation.gradle

379 lines
11 KiB
Groovy
Raw Normal View History

import org.asciidoctor.gradle.jvm.AsciidoctorTask
2023-05-11 10:54:58 -04:00
import org.asciidoctor.gradle.jvm.pdf.AsciidoctorPdfTask
plugins {
id 'org.asciidoctor.jvm.convert' version '3.3.2'
2023-05-11 10:54:58 -04:00
id 'org.asciidoctor.jvm.pdf' version '3.3.2'
id "org.asciidoctor.jvm.gems" version "3.3.2"
}
repositories {
mavenCentral()
ruby.gems()
}
2017-12-13 10:15:22 -05:00
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
apply from: rootProject.file( 'gradle/module.gradle' )
apply from: rootProject.file( 'gradle/releasable.gradle' )
2022-03-09 13:28:13 -05:00
apply plugin: 'org.hibernate.orm.build.reports'
tasks.build.dependsOn 'buildDocs'
2013-11-22 15:51:56 -05:00
defaultTasks 'buildDocs'
dependencies {
ext.pressgangVersion = '3.0.0'
2013-11-22 15:51:56 -05:00
2022-03-09 13:28:13 -05:00
reportAggregation project( ':hibernate-agroal' )
reportAggregation project( ':hibernate-c3p0' )
reportAggregation project( ':hibernate-core' )
reportAggregation project(':hibernate-envers')
reportAggregation project(':hibernate-graalvm')
reportAggregation project(':hibernate-hikaricp')
reportAggregation project(':hibernate-jcache')
reportAggregation project(':hibernate-micrometer')
reportAggregation project(':hibernate-proxool')
reportAggregation project(':hibernate-spatial')
reportAggregation project(':hibernate-vibur')
reportAggregation project(':hibernate-ant')
reportAggregation project(':hibernate-enhance-maven-plugin')
reportAggregation project(':hibernate-jpamodelgen')
asciidoctorGems 'rubygems:rouge:4.1.1'
}
2013-11-22 15:51:56 -05:00
if ( project.ormVersion.isSnapshot ) {
// only run the ci build tasks for SNAPSHOT versions
2023-04-01 10:33:34 -04:00
tasks.register('ciBuild') { dependsOn clean }
tasks.release.enabled false
}
else {
tasks.release.dependsOn clean
}
2016-02-11 16:59:13 -05:00
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// grouping tasks - declaration, see below for task dependency definitions
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-01 10:33:34 -04:00
tasks.register('buildDocs') {
2016-02-11 16:59:13 -05:00
group 'Documentation'
description 'Grouping task for performing all documentation building tasks'
}
2023-04-01 10:33:34 -04:00
tasks.register('buildDocsForPublishing') {
2016-02-11 16:59:13 -05:00
group 'Documentation'
description 'Grouping task for building all documentation for publishing (release)'
2013-11-22 15:51:56 -05:00
}
2016-02-11 16:59:13 -05:00
asciidoctorj {
requires 'rouge'
2023-05-11 10:54:58 -04:00
modules {
pdf {
version '2.3.7'
}
}
attributes icons: 'font',
experimental: true,
'source-highlighter': 'rouge',
majorMinorVersion: rootProject.ormVersion.family,
fullVersion: rootProject.ormVersion.fullName
options logDocuments: true
}
// Topical Guides ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-01 10:33:34 -04:00
tasks.register('renderTopicalGuides', AsciidoctorTask) { task ->
2023-05-11 10:54:58 -04:00
group = "Documentation"
2023-04-01 10:33:34 -04:00
description = 'Renders the Topical Guides in HTML format using Asciidoctor.'
2021-09-27 08:09:29 -04:00
tasks.buildDocs.dependsOn task
tasks.buildDocsForPublishing.dependsOn task
2023-04-01 10:33:34 -04:00
inputs.property "hibernate-version", project.ormVersion
2023-04-01 10:33:34 -04:00
sourceDir = file('src/main/asciidoc/topical')
outputDir = new File("$buildDir/asciidoc/topical/html_single")
resources {
from('src/main/asciidoc/topical/') {
include '**/images/**'
}
}
}
// Getting Started Guides (quick starts) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2013-11-22 15:51:56 -05:00
2023-04-01 10:33:34 -04:00
tasks.register('renderGettingStartedGuides', AsciidoctorTask) { task ->
2023-05-11 10:54:58 -04:00
group = "Documentation"
2023-04-01 10:33:34 -04:00
description = 'Renders the Getting Started Guides (quick starts) in HTML format using Asciidoctor.'
2021-09-27 08:09:29 -04:00
tasks.buildDocs.dependsOn task
tasks.buildDocsForPublishing.dependsOn task
2023-04-01 10:33:34 -04:00
inputs.property "hibernate-version", project.ormVersion
2023-04-01 10:33:34 -04:00
sourceDir = file('src/main/asciidoc/quickstart/guides')
sources {
include 'index.adoc'
}
outputDir = new File("$buildDir/asciidoc/quickstart/html_single")
}
2016-02-11 16:59:13 -05:00
2023-04-01 10:33:34 -04:00
tasks.register('buildTutorialZip', Zip) { task ->
2016-02-11 16:59:13 -05:00
from 'src/main/asciidoc/quickstart/tutorials'
destinationDirectory = tasks.renderGettingStartedGuides.outputDir
archiveFileName = 'hibernate-tutorials.zip'
2016-02-11 16:59:13 -05:00
expand(
version: project.version,
slf4j: "1.7.5",
junit: testLibs.versions.junit4.get(),
h2: dbLibs.versions.h2.get()
2016-02-11 16:59:13 -05:00
)
2021-09-27 08:09:29 -04:00
tasks.renderGettingStartedGuides.dependsOn task
2016-02-11 16:59:13 -05:00
}
// Introduction ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-05-11 10:54:58 -04:00
tasks.register('renderIntroductionPdf', AsciidoctorPdfTask) {task->
group = "Documentation"
description = 'Renders the Introduction in PDF format using Asciidoctor.'
tasks.buildDocs.dependsOn task
tasks.buildDocsForPublishing.dependsOn task
inputs.property "hibernate-version", project.ormVersion
sourceDir = file( 'src/main/asciidoc/introduction' )
baseDir = file( 'src/main/asciidoc/introduction' )
sources {
include 'Hibernate_Introduction.adoc'
}
outputDir = "$buildDir/asciidoc/introduction/pdf"
attributes jpaJavadocUrlPrefix: "https://javaee.github.io/javaee-spec/javadocs/javax/persistence/"
}
tasks.register('renderIntroduction', AsciidoctorTask) {task->
group = "Documentation"
description = 'Renders the Introduction in HTML format using Asciidoctor.'
tasks.buildDocs.dependsOn task
tasks.buildDocsForPublishing.dependsOn task
2023-05-11 10:54:58 -04:00
inputs.property "hibernate-version", project.ormVersion
sourceDir = file( 'src/main/asciidoc/introduction' )
sources {
include 'Hibernate_Introduction.adoc'
}
outputDir = "$buildDir/asciidoc/introduction/html_single"
attributes linkcss: true,
stylesheet: "css/hibernate.css",
docinfo: 'private',
jpaJavadocUrlPrefix: "https://javaee.github.io/javaee-spec/javadocs/javax/persistence/"
resources {
from('src/main/asciidoc/introduction/') {
include 'images/**'
}
from('src/main/style/asciidoctor') {
include 'images/**'
}
from('src/main/style/asciidoctor') {
include 'css/**'
}
from('src/main/style/asciidoctor') {
include 'js/**'
}
}
}
// User Guide ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-01 10:33:34 -04:00
tasks.register('renderUserGuide', AsciidoctorTask) { task ->
2023-05-11 10:54:58 -04:00
group = "Documentation"
2023-04-01 10:33:34 -04:00
description = 'Renders the User Guides in HTML format using Asciidoctor.'
2021-09-27 08:09:29 -04:00
tasks.buildDocs.dependsOn task
tasks.buildDocsForPublishing.dependsOn task
2023-04-01 10:33:34 -04:00
inputs.property "hibernate-version", project.ormVersion
dependsOn ':hibernate-core:collectConfigProperties'
dependsOn ':hibernate-envers:collectConfigProperties'
dependsOn ':hibernate-jcache:collectConfigProperties'
sourceDir = file( 'src/main/asciidoc/userguide' )
sources {
include 'Hibernate_User_Guide.adoc'
}
2022-03-31 12:01:06 -04:00
outputDir = "$buildDir/asciidoc/userguide/html_single"
attributes linkcss: true,
2023-04-01 10:33:34 -04:00
stylesheet: "css/hibernate.css",
docinfo: 'private',
jpaJavadocUrlPrefix: "https://javaee.github.io/javaee-spec/javadocs/javax/persistence/"
resources {
2023-04-01 10:33:34 -04:00
from('src/main/asciidoc/userguide/') {
include 'images/**'
}
from('src/main/style/asciidoctor') {
include 'images/**'
}
from('src/main/style/asciidoctor') {
include 'css/**'
}
from('src/main/style/asciidoctor') {
include 'js/**'
}
2023-04-01 10:33:34 -04:00
}
}
// Integration Guide ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-04-01 10:33:34 -04:00
tasks.register( "renderIntegrationGuide", AsciidoctorTask.class, task-> {
group = "Documentation"
description = 'Renders the User Guides in HTML format using Asciidoctor.'
2021-09-27 08:09:29 -04:00
tasks.buildDocs.dependsOn task
tasks.buildDocsForPublishing.dependsOn task
2023-04-01 10:33:34 -04:00
inputs.property "hibernate-version", project.ormVersion
sourceDir = file( 'src/main/asciidoc/integrationguide' )
sources {
include 'Hibernate_Integration_Guide.adoc'
}
2022-03-31 12:01:06 -04:00
outputDir = project.layout.buildDirectory.dir( 'asciidoc/integrationguide/html_single' )
attributes linkcss: true,
stylesheet: "css/hibernate.css"
resources {
from('src/main/asciidoc/integrationguide/') {
include 'images/**'
}
from('src/main/style/asciidoctor') {
include 'images/**'
}
from('src/main/style/asciidoctor') {
include 'css/**'
}
}
2023-04-01 10:33:34 -04:00
} )
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Migration Guide
2023-04-01 10:33:34 -04:00
tasks.register( "renderMigrationGuide", AsciidoctorTask.class, task-> {
group = "Documentation"
description = 'Renders the Migration Guide in HTML format using Asciidoctor.'
2022-03-31 12:01:06 -04:00
tasks.buildDocs.dependsOn task
tasks.buildDocsForPublishing.dependsOn task
2023-04-01 10:33:34 -04:00
inputs.property "hibernate-version", project.ormVersion
sourceDir = rootProject.layout.projectDirectory
sources {
include 'migration-guide.adoc'
}
outputDir = project.layout.buildDirectory.dir( 'asciidoc/migration-guide' )
attributes linkcss: true,
stylesheet: "css/hibernate.css"
resources {
from('src/main/style/asciidoctor') {
include 'images/**'
}
from('src/main/style/asciidoctor') {
include 'css/**'
}
}
2023-04-01 10:33:34 -04:00
} )
2022-03-31 12:01:06 -04:00
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ORM Reports
2023-04-01 10:33:34 -04:00
tasks.register('renderOrmReports') { task ->
2022-03-31 12:01:06 -04:00
group 'Documentation'
description 'Grouping task for rendering all ORM reports'
dependsOn tasks.generateIncubationReport
dependsOn tasks.generateInternalsReport
dependsOn tasks.generateDeprecationReport
2022-03-31 12:01:06 -04:00
tasks.buildDocs.dependsOn task
tasks.buildDocsForPublishing.dependsOn task
}
2023-04-01 10:33:34 -04:00
tasks.register('renderLoggingReport', AsciidoctorTask) { task ->
2022-03-31 12:01:06 -04:00
group 'Documentation'
description = 'Renders the ORM logging report in HTML format using Asciidoctor.'
dependsOn tasks.generateLoggingReport
tasks.renderOrmReports.dependsOn task
2023-04-01 10:33:34 -04:00
inputs.property "version", project.ormVersion
2022-03-31 12:01:06 -04:00
2023-04-01 10:33:34 -04:00
sourceDir = layout.buildDirectory.dir('orm/reports')
2022-03-31 12:01:06 -04:00
sources {
include 'logging.adoc'
}
2023-04-01 10:33:34 -04:00
outputDir = project.layout.buildDirectory.dir('asciidoc/logging')
2022-03-31 12:01:06 -04:00
attributes linkcss: true,
stylesheet: "css/hibernate.css"
resources {
from('src/main/style/asciidoctor') {
include 'images/**'
}
from('src/main/style/asciidoctor') {
include 'css/**'
}
}
}
tasks.register('renderDialectReport', AsciidoctorTask) { task ->
group 'Documentation'
description = 'Renders the ORM Dialect report in HTML format using Asciidoctor.'
dependsOn tasks.generateDialectReport
tasks.renderOrmReports.dependsOn task
inputs.property "version", project.ormVersion
sourceDir = layout.buildDirectory.dir('orm/reports')
sources {
include 'dialect.adoc'
}
outputDir = project.layout.buildDirectory.dir('asciidoc/dialect')
attributes linkcss: true,
stylesheet: "css/hibernate.css"
resources {
from('src/main/style/asciidoctor') {
include 'images/**'
}
from('src/main/style/asciidoctor') {
include 'css/**'
}
}
}
2022-03-31 12:01:06 -04:00
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-03-11 15:45:43 -05:00
2021-08-05 11:04:54 -04:00
tasks.withType(AsciidoctorTask).all {
baseDirFollowsSourceDir()
outputOptions {
separateOutputDirs = false
backends 'html5'
}
}