mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-07-30 22:23:30 +00:00
This addresses a deprecation warning causing build caching to be disabled for the checkstyleNohttp task. With this change, we tell Gradle that the rncToXsd task in the spring-security-config project produces output that should be considered when running the checkstyleNohttp task. This clears up ambiguities when computing the task graph.
205 lines
5.4 KiB
Groovy
205 lines
5.4 KiB
Groovy
import io.spring.gradle.IncludeRepoTask
|
|
import trang.RncToXsd
|
|
|
|
buildscript {
|
|
dependencies {
|
|
classpath "io.spring.javaformat:spring-javaformat-gradle-plugin:$springJavaformatVersion"
|
|
classpath 'io.spring.nohttp:nohttp-gradle:0.0.11'
|
|
classpath "io.freefair.gradle:aspectj-plugin:6.5.1"
|
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
|
|
classpath "com.netflix.nebula:nebula-project-plugin:8.2.0"
|
|
}
|
|
repositories {
|
|
gradlePluginPortal()
|
|
}
|
|
}
|
|
|
|
apply plugin: 'io.spring.nohttp'
|
|
apply plugin: 'locks'
|
|
apply plugin: 's101'
|
|
apply plugin: 'io.spring.convention.root'
|
|
apply plugin: 'org.jetbrains.kotlin.jvm'
|
|
apply plugin: 'org.springframework.security.update-dependencies'
|
|
apply plugin: 'org.springframework.security.update-version'
|
|
apply plugin: 'org.springframework.security.sagan'
|
|
apply plugin: 'org.springframework.github.milestone'
|
|
apply plugin: 'org.springframework.github.changelog'
|
|
apply plugin: 'org.springframework.github.release'
|
|
|
|
group = 'org.springframework.security'
|
|
description = 'Spring Security'
|
|
|
|
ext.snapshotBuild = version.contains("SNAPSHOT")
|
|
ext.releaseBuild = version.contains("SNAPSHOT")
|
|
ext.milestoneBuild = !(snapshotBuild || releaseBuild)
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
tasks.named("saganCreateRelease") {
|
|
referenceDocUrl = "https://docs.spring.io/spring-security/reference/{version}/index.html"
|
|
apiDocUrl = "https://docs.spring.io/spring-security/site/docs/{version}/api/"
|
|
}
|
|
|
|
tasks.named("gitHubCheckMilestoneHasNoOpenIssues") {
|
|
repository {
|
|
owner = "spring-projects"
|
|
name = "spring-security"
|
|
}
|
|
}
|
|
|
|
tasks.named("gitHubNextReleaseMilestone") {
|
|
repository {
|
|
owner = "spring-projects"
|
|
name = "spring-security"
|
|
}
|
|
}
|
|
|
|
tasks.named("gitHubCheckNextVersionDueToday") {
|
|
repository {
|
|
owner = "spring-projects"
|
|
name = "spring-security"
|
|
}
|
|
}
|
|
|
|
tasks.named("scheduleNextRelease") {
|
|
repository {
|
|
owner = "spring-projects"
|
|
name = "spring-security"
|
|
}
|
|
weekOfMonth = 3
|
|
dayOfWeek = 1
|
|
}
|
|
|
|
tasks.named("createGitHubRelease") {
|
|
repository {
|
|
owner = "spring-projects"
|
|
name = "spring-security"
|
|
}
|
|
}
|
|
|
|
tasks.named("dispatchGitHubWorkflow") {
|
|
repository {
|
|
owner = "spring-projects"
|
|
name = "spring-security"
|
|
}
|
|
}
|
|
|
|
tasks.named("updateDependencies") {
|
|
// we aren't Gradle 7 compatible yet
|
|
checkForGradleUpdate = false
|
|
}
|
|
|
|
updateDependenciesSettings {
|
|
gitHub {
|
|
organization = "spring-projects"
|
|
repository = "spring-security"
|
|
}
|
|
addFiles({
|
|
return [
|
|
project.file("buildSrc/src/main/groovy/io/spring/gradle/convention/CheckstylePlugin.groovy")
|
|
]
|
|
})
|
|
dependencyExcludes {
|
|
majorVersionBump()
|
|
minorVersionBump()
|
|
releaseCandidatesVersions()
|
|
alphaBetaVersions()
|
|
snapshotVersions()
|
|
addRule { components ->
|
|
components.withModule("org.python:jython") { selection ->
|
|
ModuleComponentIdentifier candidate = selection.getCandidate();
|
|
if (!candidate.getVersion().equals(selection.getCurrentVersion())) {
|
|
selection.reject("jython updates break integration tests");
|
|
}
|
|
}
|
|
components.withModule("com.nimbusds:nimbus-jose-jwt") { selection ->
|
|
ModuleComponentIdentifier candidate = selection.getCandidate();
|
|
if (!candidate.getVersion().equals(selection.getCurrentVersion())) {
|
|
selection.reject("nimbus-jose-jwt gets updated when oauth2-oidc-sdk is updated to ensure consistency");
|
|
}
|
|
}
|
|
components.withModule("io.mockk:mockk") { selection ->
|
|
ModuleComponentIdentifier candidate = selection.getCandidate();
|
|
if (!candidate.getVersion().equals(selection.getCurrentVersion())) {
|
|
selection.reject("mockk updates break tests");
|
|
}
|
|
}
|
|
components.all { selection ->
|
|
ModuleComponentIdentifier candidate = selection.getCandidate();
|
|
// Do not compare version due to multiple versions existing
|
|
// will cause opensaml 3.x to be updated to 4.x
|
|
if (candidate.getGroup().equals("org.opensaml")) {
|
|
selection.reject("org.opensaml maintains two different versions, so it must be updated manually");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
subprojects {
|
|
plugins.withType(JavaPlugin) {
|
|
project.sourceCompatibility='1.8'
|
|
}
|
|
tasks.withType(JavaCompile) {
|
|
options.encoding = "UTF-8"
|
|
options.compilerArgs.add("-parameters")
|
|
}
|
|
}
|
|
|
|
|
|
allprojects {
|
|
if (!['spring-security-bom', 'spring-security-docs'].contains(project.name)) {
|
|
apply plugin: 'io.spring.javaformat'
|
|
apply plugin: 'checkstyle'
|
|
|
|
pluginManager.withPlugin("io.spring.convention.checkstyle", { plugin ->
|
|
configure(plugin) {
|
|
dependencies {
|
|
checkstyle "io.spring.javaformat:spring-javaformat-checkstyle:$springJavaformatVersion"
|
|
}
|
|
checkstyle {
|
|
toolVersion = '8.34'
|
|
}
|
|
}
|
|
})
|
|
|
|
if (project.name.contains('sample')) {
|
|
tasks.whenTaskAdded { task ->
|
|
if (task.name.contains('format') || task.name.contains('checkFormat') || task.name.contains("checkstyle")) {
|
|
task.enabled = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.withType(JavaCompile).configureEach {
|
|
javaCompiler = javaToolchains.compilerFor {
|
|
languageVersion = JavaLanguageVersion.of(8)
|
|
}
|
|
}
|
|
}
|
|
|
|
if (hasProperty('buildScan')) {
|
|
buildScan {
|
|
termsOfServiceUrl = 'https://gradle.com/terms-of-service'
|
|
termsOfServiceAgree = 'yes'
|
|
}
|
|
}
|
|
|
|
nohttp {
|
|
source.exclude "buildSrc/build/**"
|
|
source.builtBy(project(':spring-security-config').tasks.withType(RncToXsd))
|
|
}
|
|
|
|
tasks.register('cloneSamples', IncludeRepoTask) {
|
|
repository = 'spring-projects/spring-security-samples'
|
|
ref = samplesBranch
|
|
outputDirectory = project.hasProperty("cloneOutputDirectory") ? project.file("$cloneOutputDirectory") : project.file("build/samples")
|
|
}
|
|
|
|
s101 {
|
|
configurationDirectory = project.file("etc/s101")
|
|
}
|