150 lines
4.8 KiB
Plaintext
150 lines
4.8 KiB
Plaintext
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
|
import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension
|
|
import io.gitlab.arturbosch.detekt.extensions.DetektExtension
|
|
import org.jetbrains.kotlin.cli.common.toBooleanLenient
|
|
|
|
plugins {
|
|
kotlin("jvm")
|
|
id("org.springframework.boot") apply false
|
|
|
|
// IntelliJ
|
|
idea
|
|
|
|
// Classes annotated with @Configuration, @Controller, @RestController, @Service or @Repository are automatically opened
|
|
// https://kotlinlang.org/docs/reference/compiler-plugins.html#spring-support
|
|
kotlin("plugin.spring") apply false
|
|
|
|
// A Gradle plugin that provides Maven-like dependency management and exclusions
|
|
// https://docs.spring.io/dependency-management-plugin/docs/current/reference/html/
|
|
id("io.spring.dependency-management")
|
|
|
|
id("io.gitlab.arturbosch.detekt")
|
|
id("org.cqfn.diktat.diktat-gradle-plugin")
|
|
}
|
|
|
|
allprojects {
|
|
group = "ru.touchin"
|
|
version = "2021.1"
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
mavenCentral()
|
|
}
|
|
|
|
println("Enabling IDEA plugin in project ${project.name}...")
|
|
apply(plugin = "idea")
|
|
}
|
|
|
|
diktat {
|
|
inputs {
|
|
include(
|
|
"**/src/**/*.kt",
|
|
"*.kts",
|
|
"**/*.kts",
|
|
"**/src/**/*.kts",
|
|
)
|
|
exclude(
|
|
"**/build/**",
|
|
"build/**",
|
|
)
|
|
}
|
|
val tasksFileReportEnabled = project.properties["TASKS_FILE_REPORT_ENABLED"]
|
|
?.let { it.toString().toBooleanLenient() }
|
|
?: true
|
|
|
|
reporter = if (tasksFileReportEnabled) "html" else "plain"
|
|
output = if (tasksFileReportEnabled) "${project.buildDir}/reports/diktat-report.html" else String()
|
|
diktatConfigFile = file("$rootDir/diktat-analysis.yml")
|
|
ignoreFailures = true
|
|
debug = false
|
|
}
|
|
|
|
subprojects {
|
|
println("Enabling Kotlin JVM plugin in project ${project.name}...")
|
|
apply(plugin = "org.jetbrains.kotlin.jvm")
|
|
|
|
println("Enabling Kotlin Spring plugin in project ${project.name}...")
|
|
apply(plugin = "org.jetbrains.kotlin.plugin.spring")
|
|
|
|
println("Enabling Spring Boot Dependency Management in project ${project.name}...")
|
|
apply(plugin = "io.spring.dependency-management")
|
|
|
|
println("Enabling Detekt support in project ${project.name}...")
|
|
apply(plugin = "io.gitlab.arturbosch.detekt")
|
|
|
|
detekt {
|
|
config = files("$rootDir/detekt-config.yml")
|
|
source = files(
|
|
DetektExtension.Companion.DEFAULT_SRC_DIR_JAVA,
|
|
DetektExtension.Companion.DEFAULT_SRC_DIR_KOTLIN,
|
|
)
|
|
reports {
|
|
txt.enabled = false
|
|
xml.enabled = false
|
|
html {
|
|
enabled = true
|
|
destination = file("${project.buildDir}/reports/kotlin-detekt-${project.name}.html")
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
configure<DependencyManagementExtension> {
|
|
imports {
|
|
mavenBom(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
|
|
}
|
|
|
|
dependencies {
|
|
dependency("ch.qos.logback:logback-classic:1.2.3")
|
|
dependency("ch.qos.logback.contrib:logback-json-classic:0.1.5")
|
|
dependency("ch.qos.logback.contrib:logback-jackson:0.1.5")
|
|
|
|
dependency("org.testcontainers:testcontainers:1.18.3")
|
|
dependency("org.testcontainers:postgresql:1.18.3")
|
|
dependency("org.testcontainers:junit-jupiter:1.18.3")
|
|
dependency("org.junit.jupiter:junit-jupiter-api:5.4.2")
|
|
dependency("org.junit.jupiter:junit-jupiter-params:5.4.2")
|
|
dependency("org.junit.jupiter:junit-jupiter-engine:5.4.2")
|
|
|
|
dependency("com.tngtech.archunit:archunit:1.0.1")
|
|
|
|
dependency("org.liquibase:liquibase-core:4.4.0")
|
|
|
|
dependency("com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0")
|
|
dependency("org.mockito:mockito-inline:3.11.0")
|
|
|
|
dependency("com.github.zafarkhaja:java-semver:0.9.0")
|
|
|
|
dependency("javax.measure:unit-api:2.1.2")
|
|
dependency("tech.units:indriya:2.1.2")
|
|
|
|
dependency("org.locationtech.spatial4j:spatial4j:0.8")
|
|
|
|
dependency("com.auth0:java-jwt:3.10.3")
|
|
|
|
dependency("software.amazon.awssdk:s3:2.10.11")
|
|
|
|
dependency("com.google.firebase:firebase-admin:9.0.0")
|
|
|
|
dependency("com.github.ua-parser:uap-java:1.5.3")
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
// use for @ConstructorBinding
|
|
implementation("org.jetbrains.kotlin:kotlin-reflect")
|
|
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
|
|
|
|
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
|
|
}
|
|
|
|
tasks.withType<KotlinCompile> {
|
|
java.sourceCompatibility = JavaVersion.VERSION_11
|
|
kotlinOptions.jvmTarget = JavaVersion.VERSION_11.toString()
|
|
}
|
|
|
|
tasks.test {
|
|
useJUnitPlatform()
|
|
}
|
|
}
|