meals-made-easy-api/build.gradle

121 lines
3.4 KiB
Groovy

plugins {
id 'java'
id 'org.springframework.boot' version '3.5.9'
id 'io.spring.dependency-management' version '1.1.7'
}
group = 'app.mealsmadeeasy'
version = '0.1.0-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(25)
}
}
repositories {
mavenCentral()
}
sourceSets {
testFixtures {
compileClasspath += main.output
}
integrationTest {
compileClasspath += main.output + testFixtures.output
runtimeClasspath += main.runtimeClasspath + testFixtures.runtimeClasspath
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
testFixturesImplementation {
extendsFrom implementation
}
integrationTestImplementation {
extendsFrom implementation
extendsFrom testImplementation
}
integrationTestRuntimeOnly {
extendsFrom testRuntimeOnly
}
}
ext {
set('springAiVersion', "1.1.2")
}
dependencies {
// From Spring Initalizr
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.ai:spring-ai-advisors-vector-store'
implementation 'org.springframework.ai:spring-ai-starter-model-ollama'
implementation 'org.springframework.ai:spring-ai-starter-vector-store-pgvector'
implementation 'org.hibernate.orm:hibernate-vector:6.6.39.Final'
runtimeOnly 'org.postgresql:postgresql'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
// flyway
implementation 'org.flywaydb:flyway-core'
implementation 'org.flywaydb:flyway-database-postgresql'
// Custom
implementation 'io.jsonwebtoken:jjwt-api:0.13.0'
implementation 'io.jsonwebtoken:jjwt-jackson:0.13.0'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.13.0'
implementation 'org.commonmark:commonmark:0.27.0'
implementation 'org.jsoup:jsoup:1.21.2'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.20.1'
implementation 'io.minio:minio:8.6.0'
compileOnly 'org.jetbrains:annotations:26.0.2-1'
// https://mvnrepository.com/artifact/com.twelvemonkeys.imageio/imageio-webp
runtimeOnly 'com.twelvemonkeys.imageio:imageio-webp:3.12.0'
// https://mvnrepository.com/artifact/com.twelvemonkeys.imageio/imageio-batik
runtimeOnly 'com.twelvemonkeys.imageio:imageio-batik:3.12.0'
// https://mvnrepository.com/artifact/org.apache.xmlgraphics/batik-all
runtimeOnly 'org.apache.xmlgraphics:batik-all:1.19'
// Custom testing
testImplementation 'org.testcontainers:testcontainers:1.21.4'
testImplementation 'org.testcontainers:junit-jupiter:1.21.4'
testImplementation 'org.testcontainers:postgresql:1.21.4'
testImplementation 'org.testcontainers:minio:1.21.4'
testFixturesImplementation 'org.hamcrest:hamcrest:3.0'
}
dependencyManagement {
imports {
mavenBom "org.springframework.ai:spring-ai-bom:${springAiVersion}"
}
}
tasks.register('integrationTest', Test) {
description = 'Run integration tests.'
group = 'verification'
testClassesDirs = sourceSets.integrationTest.output.classesDirs
classpath = sourceSets.integrationTest.runtimeClasspath
}
tasks.withType(Test).configureEach {
useJUnitPlatform()
}