Files
YouAndMe/build.gradle

166 lines
4.1 KiB
Groovy

import com.github.spotbugs.snom.SpotBugsTask
plugins {
id 'jacoco'
id 'org.springframework.boot' version '2.5.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'org.asciidoctor.convert' version '1.5.8'
id 'org.ec4j.editorconfig' version '0.0.3'
id 'com.github.spotbugs' version '4.7.0'
id 'checkstyle'
id 'java'
}
group = 'com.yam'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
all {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}
}
repositories {
mavenCentral()
}
ext {
set('snippetsDir', file("build/generated-snippets"))
}
asciidoctor {
inputs.dir snippetsDir
dependsOn test
}
dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
testImplementation 'com.h2database:h2'
runtimeOnly 'mysql:mysql-connector-java'
implementation 'com.lmax:disruptor:3.4.4'
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
implementation 'org.springframework.boot:spring-boot-starter-mail'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.security:spring-security-crypto:5.5.2'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'it.ozimov:embedded-redis:0.7.2'
testImplementation 'it.ozimov:embedded-redis:0.7.2'
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
implementation 'org.springframework.session:spring-session-data-redis'
testImplementation 'io.github.javaunit:autoparams:0.3.0'
testImplementation 'com.tngtech.archunit:archunit-junit5:0.20.1'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc'
implementation 'org.apache.commons:commons-lang3:3.12.0'
}
test {
outputs.dir snippetsDir
useJUnitPlatform()
finalizedBy('jacocoTestReport')
}
editorconfig {
excludes = ["build"]
}
jacoco {
toolVersion = '0.8.7'
}
jacocoTestReport {
reports {
xml.enabled true
html.enabled true
csv.enabled false
}
finalizedBy 'jacocoTestCoverageVerification'
}
jacocoTestCoverageVerification {
violationRules {
rule {
enabled = true
element = 'CLASS'
excludes = [
"*.YouAndMeApplication",
"*.*Request",
"*.*Response",
"*.*Repository",
"*.*Reader",
"*.Role",
"*.configuration.*",
"*.SmtpMail*",
"*.RoleTypeHandler",
]
limit {
counter = 'BRANCH'
value = 'COVEREDRATIO'
minimum = 0.80
}
limit {
counter = 'INSTRUCTION'
value = 'COVEREDRATIO'
minimum = 0.50
}
}
}
}
check.dependsOn editorconfigCheck
checkstyle {
configFile = file("${project.rootDir}/config/checkstyle/checkstyle.xml")
configProperties = ["suppressionFile": "${project.rootDir}/config/checkstyle/checkstyle/checkstyle-suppressions.xml"]
toolVersion = "8.40"
ignoreFailures = false
maxErrors = 0
maxWarnings = 0
}
spotbugs {
ignoreFailures = false
reportLevel = "high"
spotbugsTest.enabled = false
}
tasks.withType(SpotBugsTask) {
reports {
text.enabled = true
xml.enabled = false
html.enabled = false
}
}
tasks.register("printSpotbugsMain") {
doLast {
File mainResult = file("${buildDir}/reports/spotbugs/main.txt")
if (mainResult.exists()) {
mainResult.readLines().forEach {
println(it)
}
}
}
}
tasks.getByPath("spotbugsMain").finalizedBy("printSpotbugsMain")