plugins { id 'java' id 'org.springframework.boot' version '3.3.6' id 'io.spring.dependency-management' version '1.1.7' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.security:spring-security-crypto' implementation 'com.baomidou:mybatis-plus-spring-boot3-starter:3.5.12' implementation 'com.baomidou:mybatis-plus-jsqlparser:3.5.12' runtimeOnly 'com.mysql:mysql-connector-j' implementation 'com.github.xiaoymin:knife4j-openapi3-jakarta-spring-boot-starter:4.5.0' implementation 'com.alibaba:easyexcel:4.0.3' implementation 'io.jsonwebtoken:jjwt-api:0.12.6' runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.6' runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.6' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() } import java.time.LocalDateTime import java.time.format.DateTimeFormatter task archive(type: Tar) { def timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) archiveFileName = "finance-app-${version}-${timestamp}.tar.gz" destinationDirectory = file("${projectDir}/distributions") compression = Compression.GZIP from(projectDir) { exclude 'build/**' exclude '.gradle/**' exclude 'distributions/**' exclude 'frontend/node_modules/**' exclude 'frontend/node_modules*/**' exclude 'frontend/node_modules*.zip' exclude 'frontend/dist/**' exclude '**/*.log' exclude 'logs/**' } }