|
|
|
plugins {
|
|
|
|
id 'kotlin'
|
|
|
|
id 'io.spring.antora.generate-antora-yml' version '0.0.1'
|
|
|
|
id 'org.antora' version '1.0.0'
|
|
|
|
}
|
|
|
|
|
|
|
|
description = "Spring Framework Docs"
|
|
|
|
|
|
|
|
apply from: "${rootDir}/gradle/publications.gradle"
|
|
|
|
|
|
|
|
antora {
|
|
|
|
version = '3.2.0-alpha.2'
|
|
|
|
playbook = 'cached-antora-playbook.yml'
|
|
|
|
playbookProvider {
|
|
|
|
repository = 'spring-projects/spring-framework'
|
|
|
|
branch = 'docs-build'
|
|
|
|
path = 'lib/antora/templates/per-branch-antora-playbook.yml'
|
|
|
|
checkLocalBranch = true
|
|
|
|
}
|
|
|
|
options = ['--clean', '--stacktrace']
|
|
|
|
environment = [
|
|
|
|
'ALGOLIA_API_KEY': '82c7ead946afbac3cf98c32446154691',
|
|
|
|
'ALGOLIA_APP_ID': '244V8V9FGG',
|
|
|
|
'ALGOLIA_INDEX_NAME': 'framework-docs'
|
|
|
|
]
|
|
|
|
dependencies = [
|
|
|
|
'@antora/atlas-extension': '1.0.0-alpha.1',
|
|
|
|
'@antora/collector-extension': '1.0.0-alpha.3',
|
|
|
|
'@asciidoctor/tabs': '1.0.0-beta.3',
|
|
|
|
'@opendevise/antora-release-line-extension': '1.0.0-alpha.2',
|
|
|
|
'@springio/antora-extensions': '1.3.0',
|
|
|
|
'@springio/asciidoctor-extensions': '1.0.0-alpha.9'
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks.named("generateAntoraYml") {
|
|
|
|
asciidocAttributes = project.provider( {
|
|
|
|
return ["spring-version": project.version ]
|
|
|
|
} )
|
|
|
|
}
|
|
|
|
|
Stop publishing distribution zip artifact
Prior to this commit, the Spring Framework build would publish several
zip artifacts:
* a "*-schema.zip" containing all the XSD schemas produced
* a "*-docs.zip" containing the API docs
* a "*-dist.zip" containing all of the above, plus module jars
Since the reference docs are now produced by Antora in a separate
process, the "*-docs.zip" does not contain the reference docs anymore.
But it still contains the API docs which are automatically fetched from
the artifact repository and published on the docs.spring.io website.
This commit intends to update the current arrangement and optimize the
build.
First, the "*-dist.zip" is not published anymore, since it cannot be
consumed anyway by the community: repo.spring.io does not distribute
release artifacts publicly, developers are expected to get them from
Maven Central. This arrangement is quite dated anyway and is not really
useful in current application build setups.
The generation of API docs is moved to a new "framework-api" module,
separating it from the reference docs module ("framework-docs") which
contains Java, Kotlin and Asciidoctor sources. This removes the custom
javadoc aggregation task and instead uses a dedicated Gradle plugin.
This change also adds a new `-PskipDocs` Gradle project property that
skips entirely the documentation tasks (javadoc, kdocs) as well as the
"distrbution" tasks managed in the framework-api module.
This allows developers to publish locally a SNAPSHOT of Spring Framework
without creating the entire documentation distribution. This is
particularly useful for local testing.
For example, `$ ./gradlew pTML -PskipDocs`.
Closes gh-31049
1 year ago
|
|
|
tasks.register("generateAntoraResources") {
|
|
|
|
dependsOn 'generateAntoraYml'
|
|
|
|
}
|
|
|
|
|
|
|
|
jar {
|
|
|
|
enabled = false
|
|
|
|
}
|
|
|
|
|
|
|
|
javadoc {
|
|
|
|
enabled = false
|
|
|
|
}
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
maven {
|
|
|
|
url "https://repo.spring.io/release"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
api(project(":spring-context"))
|
|
|
|
api(project(":spring-jms"))
|
|
|
|
api(project(":spring-web"))
|
|
|
|
api("jakarta.jms:jakarta.jms-api")
|
|
|
|
api("jakarta.servlet:jakarta.servlet-api")
|
|
|
|
|
|
|
|
implementation(project(":spring-core-test"))
|
|
|
|
implementation("org.assertj:assertj-core")
|
|
|
|
}
|