plugins { id 'java' id 'org.springframework.boot' version '3.3.0' id 'io.spring.dependency-management' version '1.1.5' } group = 'app.mealsmadeeasy' version = '0.1.0-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } repositories { mavenCentral() } sourceSets { testFixtures { compileClasspath += main.output } integrationTest { compileClasspath += main.output + testFixtures.output runtimeClasspath += main.runtimeClasspath + testFixtures.runtimeClasspath } } configurations { testFixturesImplementation { extendsFrom implementation } integrationTestImplementation { extendsFrom implementation extendsFrom testImplementation } integrationTestRuntimeOnly { extendsFrom testRuntimeOnly } } 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' runtimeOnly 'com.mysql:mysql-connector-j' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' // Custom implementation 'io.jsonwebtoken:jjwt-api:0.12.5' implementation 'io.jsonwebtoken:jjwt-jackson:0.12.5' runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.5' implementation 'org.commonmark:commonmark:0.22.0' implementation 'org.jsoup:jsoup:1.17.2' implementation 'io.minio:minio:8.5.11' compileOnly 'org.jetbrains:annotations:24.1.0' // Custom testing testRuntimeOnly 'com.h2database:h2' testImplementation 'org.testcontainers:testcontainers:1.20.0' testImplementation 'org.testcontainers:junit-jupiter:1.20.0' testImplementation "org.testcontainers:minio:1.20.0" testFixturesImplementation 'org.hamcrest:hamcrest:2.2' } tasks.register('integrationTest', Test) { description = 'Run integration tests.' group = 'verification' testClassesDirs = sourceSets.integrationTest.output.classesDirs classpath = sourceSets.integrationTest.runtimeClasspath } tasks.withType(Test).configureEach { useJUnitPlatform() }