hibernate-orm/gradle/javadoc.gradle

83 lines
3.8 KiB
Groovy

/*
* 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/base-information.gradle' )
tasks.named( "javadoc", Javadoc ) {
def currentYear = new GregorianCalendar().get( Calendar.YEAR )
inputs.property "ormVersion", project.ormVersion
inputs.property "currentYear", currentYear
// exclude any generated sources and internal packages
exclude '**/generated-src/**'
exclude '**/generated/source/**'
exclude '**/generated/sources/**'
exclude '**/internal/**'
include '**/*.java'
maxMemory = '512m'
configure( options ) {
// this is the config needed to use asciidoclet for Javadoc rendering. It relies on a build from John's PR @ https://github.com/asciidoctor/asciidoclet/pull/91
// however, the PR does not work for me in that Javadocs with `@asciidoclet` are not rendered using asciidoc(tor/let). Also tried the preferable `@asciidoc`
// with the same result. Leaving all this config in place however as the outcome is the same as not enabling it.
// todo (6.0) : need to find out why the asciidoclet PR does not work
//
// Travis CI JDK 11 build did not like this
// docletpath = configurations.asciidoclet.files.asType(List)
// doclet = 'org.asciidoctor.Asciidoclet'
use = true
encoding = 'UTF-8'
stylesheetFile = rootProject.file( "shared/javadoc/stylesheet.css" )
bottom = "Copyright &copy; 2001-$currentYear <a href=\"https://redhat.com\">Red Hat, Inc.</a> All Rights Reserved."
// The javadoc folder contains cached versions of the respective element-list files to avoid release issues when servers are down
// When upgrading versions of the libraries, don't forget to update the file contents in the repository
linksOffline 'https://docs.oracle.com/en/java/javase/11/docs/api/', "${project.rootDir}/javadoc/javase11"
linksOffline 'https://jakarta.ee/specifications/bean-validation/3.0/apidocs/', "${project.rootDir}/javadoc/jakarta-validation-3.0"
linksOffline 'https://jakarta.ee/specifications/cdi/4.0/apidocs/', "${project.rootDir}/javadoc/jakarta-cdi-4.0"
linksOffline 'https://jakarta.ee/specifications/platform/9/apidocs/', "${project.rootDir}/javadoc/jakarta-platform-9"
linksOffline 'https://www.javadoc.io/doc/javax.cache/cache-api/1.0.0/', "${project.rootDir}/javadoc/javax-cache-1.0"
tags(
'apiNote:a:API Note:',
'implSpec:a:Implementation Specification:',
'implNote:a:Implementation Note:',
'todo:X',
'remove:a:Removal (deprecation):',
'settingDefault:f:Default Value:'
)
addStringOption( 'Xdoclint:none', '-quiet' )
}
}
task javadocJar(type: Jar) {
from project.tasks.javadoc.outputs
manifest {
attributes(
// Basic JAR manifest attributes
'Specification-Title': project.name,
'Specification-Version': project.version,
'Specification-Vendor': 'Hibernate.org',
'Implementation-Title': project.name,
'Implementation-Version': project.version,
'Implementation-Vendor': 'Hibernate.org',
'Implementation-Vendor-Id': 'org.hibernate',
'Implementation-Url': 'https://hibernate.org/orm',
// Hibernate-specific JAR manifest attributes
'Hibernate-VersionFamily': project.ormVersion.family,
'Hibernate-JpaVersion': project.jakartaJpaVersion.name
)
}
archiveClassifier.set( 'javadoc' )
}