Files
Spring/2025-09/spring-34-kuber/build.gradle.kts
T
2026-03-11 09:14:13 +03:00

116 lines
3.2 KiB
Kotlin
Executable File

import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension
import org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES
import org.gradle.plugins.ide.idea.model.IdeaLanguageLevel
import org.gradle.api.plugins.JavaPluginExtension
import fr.brouillard.oss.gradle.plugins.JGitverPluginExtension
import fr.brouillard.oss.gradle.plugins.JGitverPlugin
import name.remal.gradle_plugins.sonarlint.SonarLintExtension
plugins {
idea
id("fr.brouillard.oss.gradle.jgitver")
id("io.spring.dependency-management")
id("org.springframework.boot") apply false
id("name.remal.sonarlint") apply false
id("com.diffplug.spotless") apply false
}
idea {
project {
languageLevel = IdeaLanguageLevel(21)
}
module {
isDownloadJavadoc = true
isDownloadSources = true
}
}
allprojects {
group = "ru.petrelevich"
repositories {
mavenLocal()
mavenCentral()
}
apply(plugin = "io.spring.dependency-management")
dependencyManagement {
dependencies {
imports {
mavenBom(BOM_COORDINATES)
}
}
}
configurations.all {
resolutionStrategy {
failOnVersionConflict()
force("commons-io:commons-io:2.16.1")
force("org.eclipse.jgit:org.eclipse.jgit:6.9.0.202403050737-r")
force("org.apache.commons:commons-compress:1.26.1")
force("com.google.errorprone:error_prone_annotations:2.28.0")
force("org.jetbrains:annotations:19.0.0")
}
}
tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
options.compilerArgs.addAll(listOf("-Xlint:all,-serial,-processing", "-Werror"))
}
apply<name.remal.gradle_plugins.sonarlint.SonarLintPlugin>()
configure<SonarLintExtension> {
nodeJs {
detectNodeJs = false
logNodeJsNotFound = false
}
}
apply<com.diffplug.gradle.spotless.SpotlessPlugin>()
configure<com.diffplug.gradle.spotless.SpotlessExtension> {
java {
palantirJavaFormat("2.50.0")
}
}
tasks.withType<Test> {
useJUnitPlatform()
testLogging.showExceptions = true
reports {
junitXml.required.set(true)
html.required.set(true)
}
}
plugins.apply(JavaPlugin::class.java)
extensions.configure<JavaPluginExtension> {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
plugins.apply(JGitverPlugin::class.java)
extensions.configure<JGitverPluginExtension> {
strategy("PATTERN")
nonQualifierBranches("main,master")
tagVersionPattern("\${v}\${<meta.DIRTY_TEXT}")
versionPattern(
"\${v}\${<meta.COMMIT_DISTANCE}\${<meta.GIT_SHA1_8}" +
"\${<meta.QUALIFIED_BRANCH_NAME}\${<meta.DIRTY_TEXT}-SNAPSHOT"
)
}
}
tasks {
val managedVersions by registering {
doLast {
project.extensions.getByType<DependencyManagementExtension>()
.managedVersions
.toSortedMap()
.map { "${it.key}:${it.value}" }
.forEach(::println)
}
}
}