plugins { id 'java' id 'org.springframework.boot' version '3.5.8' id 'io.spring.dependency-management' version '1.1.7' id 'org.hibernate.orm' version '6.6.36.Final' id 'com.github.ben-manes.versions' version '0.53.0' } group = 'com.adityachandel' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } repositories { mavenCentral() } configurations { compileOnly { extendsFrom annotationProcessor } } dependencies { // --- Spring Boot --- implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-websocket' implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springframework.boot:spring-boot-configuration-processor' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-mail' implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' // --- Database & Migration --- implementation 'org.mariadb.jdbc:mariadb-java-client:3.5.6' implementation 'org.flywaydb:flyway-mysql:11.19.0' // --- Security & Authentication --- implementation 'io.jsonwebtoken:jjwt-api:0.13.0' runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.13.0' runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.13.0' // --- Lombok (For Clean Code) --- compileOnly 'org.projectlombok:lombok:1.18.42' annotationProcessor 'org.projectlombok:lombok:1.18.42' // --- Book & Image Processing --- implementation 'org.apache.pdfbox:pdfbox:3.0.6' implementation 'org.apache.pdfbox:xmpbox:3.0.6' implementation 'org.apache.pdfbox:jbig2-imageio:3.0.4' implementation 'com.github.jai-imageio:jai-imageio-core:1.4.0' implementation 'com.github.jai-imageio:jai-imageio-jpeg2000:1.4.0' implementation 'io.documentnode:epub4j-core:4.2.2' // --- UNRAR Support --- implementation 'com.github.junrar:junrar:7.5.7' // --- JSON & Web Scraping --- implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.20.1' implementation 'org.jsoup:jsoup:1.21.2' // --- Mapping (DTOs & Entities) --- implementation 'org.mapstruct:mapstruct:1.6.3' annotationProcessor 'org.mapstruct:mapstruct-processor:1.6.3' // --- API Documentation --- implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.14' implementation 'org.apache.commons:commons-compress:1.28.0' implementation 'org.tukaani:xz:1.11' // Required by commons-compress for 7z support implementation 'org.apache.commons:commons-text:1.15.0' // --- Template Engine --- implementation 'org.freemarker:freemarker:2.3.34' // --- Test Dependencies --- testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.assertj:assertj-core:3.27.6' testImplementation "org.mockito:mockito-inline:5.2.0" } hibernate { enhancement { enableAssociationManagement = true } } test { useJUnitPlatform() jvmArgs("-XX:+EnableDynamicAgentLoading") } bootRun { def debug = System.getenv('REMOTE_DEBUG_ENABLED') if (debug.equals("true")) { jvmArgs("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005") } }