Files
ax_hub_mcp_tool/build.gradle

98 lines
3.4 KiB
Groovy

plugins {
id 'java'
id 'org.springframework.boot' version '4.0.5'
id 'io.spring.dependency-management' version '1.1.6'
}
group = 'io.shinhanlife'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '21'
}
def springBootVersion = '4.0.5'
def lombokVersion = '1.18.32'
def mapstructVersion = '1.5.5.Final'
bootRun {
if (project.hasProperty('mainClass')) {
mainClass = project.property('mainClass')
}
systemProperty "file.encoding", "UTF-8"
systemProperty "console.encoding", "UTF-8"
}
// 개발 편의를 위한 Tool Group 전용 실행 태스크 (IntelliJ 우측 Gradle 패널에서 더블클릭으로 바로 실행 가능)
task bootRunToolGroup1(type: org.springframework.boot.gradle.tasks.run.BootRun) {
group = "application"
description = "Run Tool Server for group_1 (Port: 8082)"
mainClass = 'io.shinhanlife.AxHubToolApplication'
args = ['--mcp.tool.target=group_1', '--server.port=8082']
}
task bootRunToolGroup2(type: org.springframework.boot.gradle.tasks.run.BootRun) {
group = "application"
description = "Run Tool Server for group_2 (Port: 8083)"
mainClass = 'io.shinhanlife.AxHubToolApplication'
args = ['--mcp.tool.target=group_2', '--server.port=8083']
}
springBoot {
mainClass = 'io.shinhanlife.AxHubAdminApplication'
}
repositories {
mavenCentral()
}
dependencies {
implementation "org.springframework.boot:spring-boot-starter-web:${springBootVersion}"
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
// Resilience4j
implementation 'io.github.resilience4j:resilience4j-spring-boot3:2.2.0'
implementation 'io.github.resilience4j:resilience4j-core:2.2.0'
implementation 'io.github.resilience4j:resilience4j-circuitbreaker:2.2.0'
implementation 'io.github.resilience4j:resilience4j-ratelimiter'
implementation 'io.github.resilience4j:resilience4j-retry:2.2.0'
// AOP (needed by Resilience4j)
implementation 'org.springframework.boot:spring-boot-starter-aop:3.3.0'
// MyBatis & DB
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'
runtimeOnly 'com.h2database:h2'
implementation 'p6spy:p6spy:3.9.1'
// Redis explicit driver
implementation 'io.lettuce:lettuce-core:6.6.0.RELEASE'
// MapStruct
implementation "org.mapstruct:mapstruct:${mapstructVersion}"
// Lombok
compileOnly "org.projectlombok:lombok:${lombokVersion}"
annotationProcessor "org.projectlombok:lombok:${lombokVersion}"
// lombok-mapstruct-binding is usually needed if mapstruct is processed after lombok
annotationProcessor "org.projectlombok:lombok-mapstruct-binding:0.2.0"
annotationProcessor "org.mapstruct:mapstruct-processor:${mapstructVersion}"
// MCP required dependencies
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.1'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.1'
implementation 'com.networknt:json-schema-validator:1.4.0'
implementation 'org.springframework.kafka:spring-kafka:3.2.0'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'
// Test
testImplementation "org.springframework.boot:spring-boot-starter-test:${springBootVersion}"
}
tasks.withType(JavaCompile) {
options.compilerArgs << '-parameters'
options.compilerArgs << '-Amapstruct.defaultComponentModel=spring'
}