plugins { id 'java' id 'org.springframework.boot' version '3.2.0' id 'io.spring.dependency-management' version '1.1.4' } group = 'com.osleague' version = '1.0.0' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { // Spring Boot Starters implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-quartz' // Database implementation 'org.mariadb.jdbc:mariadb-java-client:3.3.1' implementation 'org.flywaydb:flyway-core' implementation 'org.flywaydb:flyway-mysql' // Hibernate support for array types implementation 'com.vladmihalcea:hibernate-types-60:2.21.1' // Cryptography (Blake2 hashing) implementation 'org.bouncycastle:bcprov-jdk18on:1.77' // JSON processing implementation 'com.fasterxml.jackson.core:jackson-databind' implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310' // HTTP Client (for GE prices API) implementation 'org.springframework.boot:spring-boot-starter-webflux' // Lombok compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' // Development tools developmentOnly 'org.springframework.boot:spring-boot-devtools' // Testing testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' testImplementation 'org.testcontainers:testcontainers:1.19.3' testImplementation 'org.testcontainers:mariadb:1.19.3' testImplementation 'org.testcontainers:junit-jupiter:1.19.3' } // Configure Java compiler to process annotations tasks.withType(JavaCompile) { options.annotationProcessorPath = configurations.annotationProcessor } tasks.named('test') { useJUnitPlatform() }