plugins { java idea id("io.spring.dependency-management") version "1.1.6" id("org.springframework.boot") version "3.3.2" } group = "io.github.tiennm99" version = "0.0.1-SNAPSHOT" java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } idea { module { isDownloadJavadoc = true isDownloadSources = true } } configurations { compileOnly { extendsFrom(configurations.annotationProcessor.get()) } } repositories { mavenCentral() } dependencies { annotationProcessor("org.projectlombok:lombok") compileOnly("org.projectlombok:lombok") implementation("com.google.zxing:core:3.5.3") implementation("com.google.zxing:javase:3.5.3") implementation("com.ngrok:ngrok-java:1.1.0") implementation("com.ngrok:ngrok-java-native:1.1.0:windows-x86_64") implementation("org.apache.poi:poi-ooxml:5.3.0") implementation("org.springframework.boot:spring-boot-starter") implementation("org.springframework.boot:spring-boot-starter-thymeleaf") implementation("org.springframework.boot:spring-boot-starter-web") testImplementation("org.springframework.boot:spring-boot-starter-test") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } tasks.withType { useJUnitPlatform() } tasks.withType { sourceCompatibility = JavaVersion.VERSION_21.toString() targetCompatibility = JavaVersion.VERSION_21.toString() } tasks.jar { manifest { attributes["Main-Class"] = "io.github.tiennm99.qrattendance.QrAttendanceApplication" } from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) }) duplicatesStrategy = DuplicatesStrategy.EXCLUDE }