mirror of
https://github.com/spring-projects/spring-security.git
synced 2026-01-20 13:26:42 +00:00
We should not use subprojects to perform configuration becaause it does not allow for lazy loading and it can cause ordering problems. In this case, the toolchain was not being used but instead it was using the JAVA_HOME. By splitting the configuration into a plugin and applying it to each project it fixes the toolchain configuration
101 lines
4.2 KiB
Groovy
101 lines
4.2 KiB
Groovy
plugins {
|
|
id 'org.antora' version '1.0.0'
|
|
id 'io.spring.antora.generate-antora-yml' version '0.0.1'
|
|
id 'io.spring.convention.repository'
|
|
id 'security-kotlin'
|
|
id 'java-toolchain'
|
|
id 'test-compile-target-jdk25'
|
|
}
|
|
|
|
apply plugin: 'io.spring.convention.docs'
|
|
apply plugin: 'java'
|
|
|
|
antora {
|
|
options = [clean: true, fetch: !project.gradle.startParameter.offline, stacktrace: true]
|
|
environment = [
|
|
'BUILD_REFNAME': 'HEAD',
|
|
'BUILD_VERSION': project.version,
|
|
]
|
|
}
|
|
|
|
tasks.register("syncAntoraAttachments", Sync) {
|
|
group = 'Documentation'
|
|
description = 'Syncs the Antora attachments'
|
|
from project.provider( { project.tasks.api.outputs } )
|
|
into project.layout.buildDirectory.dir('generated-antora-resources/modules/ROOT/assets/attachments/api/java')
|
|
}
|
|
|
|
tasks.named("generateAntoraYml") {
|
|
asciidocAttributes = project.provider( { generateAttributes() } )
|
|
asciidocAttributes.putAll(providers.provider( { resolvedVersions(project.configurations.testRuntimeClasspath) }))
|
|
}
|
|
|
|
tasks.register("generateAntoraResources") {
|
|
dependsOn 'generateAntoraYml', 'syncAntoraAttachments'
|
|
}
|
|
|
|
dependencies {
|
|
testImplementation platform(project(':spring-security-dependencies'))
|
|
testImplementation project(':spring-security-config')
|
|
testImplementation project(path : ':spring-security-config', configuration : 'tests')
|
|
testImplementation project(':spring-security-test')
|
|
testImplementation project(':spring-security-oauth2-client')
|
|
testImplementation 'com.squareup.okhttp3:mockwebserver'
|
|
testImplementation libs.com.password4j.password4j
|
|
testImplementation 'com.unboundid:unboundid-ldapsdk'
|
|
testImplementation libs.webauthn4j.core
|
|
testImplementation 'org.jetbrains.kotlin:kotlin-reflect'
|
|
testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
|
|
testImplementation 'org.springframework:spring-core'
|
|
testImplementation 'org.springframework:spring-test'
|
|
|
|
testImplementation 'org.springframework:spring-webmvc'
|
|
testImplementation 'jakarta.servlet:jakarta.servlet-api'
|
|
testImplementation 'io.mockk:mockk'
|
|
testImplementation "org.junit.jupiter:junit-jupiter-api"
|
|
testImplementation "org.junit.jupiter:junit-jupiter-params"
|
|
testImplementation "org.junit.jupiter:junit-jupiter-engine"
|
|
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
|
}
|
|
|
|
def generateAttributes() {
|
|
def springFrameworkVersion = libs.org.springframework.spring.framework.bom.get().versionConstraint.displayName
|
|
def springBootVersion = project.property("springBootVersion")
|
|
def samplesBranch = project.property("samplesBranch")
|
|
|
|
def docsTag = snapshotBuild ? 'current' : project.version
|
|
def ghTag = snapshotBuild ? 'main' : project.version
|
|
def ghUrl = "https://github.com/spring-projects/spring-security/tree/$ghTag"
|
|
def ghOldSamplesUrl = 'https://github.com/spring-projects/spring-security/tree/5.4.x/samples'
|
|
def ghSamplesUrl = "https://github.com/spring-projects/spring-security-samples/tree/$samplesBranch"
|
|
def securityDocsUrl = "https://docs.spring.io/spring-security/site/docs/$docsTag"
|
|
def securityApiUrl = "$securityDocsUrl/api/"
|
|
def securityReferenceUrl = "$securityDocsUrl/reference/html5/"
|
|
def springFrameworkApiUrl = "https://docs.spring.io/spring-framework/docs/$springFrameworkVersion/javadoc-api/"
|
|
def springFrameworkReferenceUrl = "https://docs.spring.io/spring-framework/reference/$springFrameworkVersion/"
|
|
def springBootReferenceUrl = "https://docs.spring.io/spring-boot/$springBootVersion/"
|
|
def springBootApiUrl = "https://docs.spring.io/spring-boot/$springBootVersion/api/java/"
|
|
|
|
return ['gh-old-samples-url': ghOldSamplesUrl.toString(),
|
|
'gh-samples-url': ghSamplesUrl.toString(),
|
|
'gh-url': ghUrl.toString(),
|
|
'security-api-url': securityApiUrl.toString(),
|
|
'security-reference-url': securityReferenceUrl.toString(),
|
|
'spring-framework-api-url': springFrameworkApiUrl.toString(),
|
|
'spring-framework-reference-url': springFrameworkReferenceUrl.toString(),
|
|
'spring-boot-api-url': springBootApiUrl.toString(),
|
|
'spring-boot-reference-url': springBootReferenceUrl.toString(),
|
|
'spring-security-version': project.version]
|
|
+ resolvedVersions(project.configurations.testRuntimeClasspath)
|
|
}
|
|
|
|
def resolvedVersions(Configuration configuration) {
|
|
return configuration.resolvedConfiguration
|
|
.resolvedArtifacts
|
|
.collectEntries { [(it.name + '-version'): it.moduleVersion.id.version] }
|
|
}
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
}
|