Files
spring-session/spring-session-docs/spring-session-docs.gradle
2025-04-04 16:43:46 -05:00

100 lines
3.8 KiB
Groovy

plugins {
id 'org.antora' version '1.0.0'
id 'io.spring.antora.generate-antora-yml' version '0.0.1'
}
apply plugin: 'io.spring.convention.docs'
apply plugin: 'io.spring.convention.spring-test'
dependencies {
management platform(project(":spring-session-dependencies"))
testImplementation project(':spring-session-core')
testImplementation project(':spring-session-data-redis')
testImplementation project(':spring-session-hazelcast')
testImplementation project(':spring-session-jdbc')
testImplementation 'org.springframework:spring-jdbc'
testImplementation 'org.springframework:spring-messaging'
testImplementation 'org.springframework:spring-webmvc'
testImplementation 'org.springframework:spring-websocket'
testImplementation 'org.springframework.security:spring-security-config'
testImplementation 'org.springframework.security:spring-security-web'
testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'org.mockito:mockito-core'
testImplementation 'org.mockito:mockito-junit-jupiter'
testImplementation 'org.springframework:spring-test'
testImplementation 'org.assertj:assertj-core'
testImplementation 'com.hazelcast:hazelcast'
testImplementation 'io.lettuce:lettuce-core'
testImplementation 'jakarta.servlet:jakarta.servlet-api'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
testRuntimeOnly "org.junit.platform:junit-platform-launcher"
}
antora {
playbook = 'cached-antora-playbook.yml'
playbookProvider {
repository = 'spring-projects/spring-session'
branch = 'docs-build'
path = 'lib/antora/templates/per-branch-antora-playbook.yml'
checkLocalBranch = true
}
options = [clean: true, fetch: !project.gradle.startParameter.offline, stacktrace: true]
}
tasks.named("generateAntoraYml") {
asciidocAttributes = project.provider( { generateAttributes() } )
asciidocAttributes.putAll(providers.provider( { resolvedVersions(project.configurations.testRuntimeClasspath) }))
}
def generateAttributes() {
def springBootVersion = getLibVersion(libs.versions.org.springframework.boot.get())
def springSecurityVersion = getLibVersion(libs.org.springframework.security.spring.security.bom.get().version)
def springFrameworkVersion = getLibVersion(libs.org.springframework.spring.framework.bom.get().version)
def ghTag = snapshotBuild ? 'main' : project.version
def docsUrl = 'https://docs.spring.io'
def springBootRefDocs = "${docsUrl}/spring-boot/docs/${springBootVersion}/reference/html"
def springSecurityRefDocs = "${docsUrl}/spring-security/reference/${springSecurityVersion}"
def springFrameworkRefDocs = "${docsUrl}/spring-framework/reference/${springFrameworkVersion}"
return ['gh-tag':ghTag,
'spring-boot-version': springBootVersion,
'spring-boot-ref-docs': springBootRefDocs.toString(),
'spring-session-version': project.version,
'spring-security-ref-docs': springSecurityRefDocs.toString(),
'spring-framework-ref-docs': springFrameworkRefDocs.toString(),
'docs-url': docsUrl]
}
static def getLibVersion(String version) {
return version.contains("-")
? version.substring(0, version.indexOf("-"))
: version
}
sourceSets {
test {
java {
srcDirs = ['modules/ROOT/examples/java']
}
resources {
srcDirs = ['modules/ROOT/examples/resources']
}
}
}
repositories {
mavenCentral()
maven { url 'https://repo.spring.io/release' }
maven { url 'https://repo.spring.io/milestone' }
maven { url 'https://repo.spring.io/snapshot' }
}
def resolvedVersions(Configuration configuration) {
return configuration.resolvedConfiguration
.resolvedArtifacts
.collectEntries { [(it.name + "-version"): it.moduleVersion.id.version] }
}