import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.gradle.api.tasks.testing.logging.TestLogEvent
plugins {
java
}
group = "org.example.algorithm"
version = "1.0"
java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
configurations {
compileOnly {
extendsFrom(configurations.annotationProcessor.get())
}
testCompileOnly {
extendsFrom(configurations.testAnnotationProcessor.get())
}
}
sourceSets {
main {
java {
srcDirs("src/main/java")
}
resources {
srcDirs("src/main/resources")
}
}
test {
java {
srcDirs("src/test/java")
}
resources {
srcDirs("src/test/resources")
}
}
}
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
implementation("com.google.guava:guava:33.0.0-jre")
implementation("org.javatuples:javatuples:1.2")
// test
testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2")
testImplementation("org.junit.jupiter:junit-jupiter-engine:5.10.2")
testImplementation("org.junit.jupiter:junit-jupiter-params:5.10.2")
testImplementation("org.hamcrest:hamcrest-library:2.2")
testImplementation("org.mockito:mockito-junit-jupiter:5.10.0")
// jmh
annotationProcessor("org.openjdk.jmh:jmh-generator-annprocess:1.35")
testImplementation("org.openjdk.jmh:jmh-core:1.35")
testAnnotationProcessor("org.openjdk.jmh:jmh-generator-annprocess:1.35")
// lombok
compileOnly("org.projectlombok:lombok:1.18.30")
annotationProcessor("org.projectlombok:lombok:1.18.30")
testCompileOnly("org.projectlombok:lombok:1.18.30")
testAnnotationProcessor("org.projectlombok:lombok:1.18.30")
}
tasks.withType {
options.encoding = "UTF-8"
}
tasks.withType {
useJUnitPlatform()
testLogging {
events(
TestLogEvent.FAILED,
TestLogEvent.PASSED,
TestLogEvent.SKIPPED
)
debug {
events(
TestLogEvent.FAILED,
TestLogEvent.PASSED,
TestLogEvent.SKIPPED,
TestLogEvent.STANDARD_OUT,
TestLogEvent.STANDARD_ERROR
)
showStackTraces = true
exceptionFormat = TestExceptionFormat.FULL
}
}
}