forked from kimhyungsik/ax_hub_mcp_tool
소스 업데이트
This commit is contained in:
86
build.gradle
86
build.gradle
@@ -34,6 +34,15 @@ subprojects {
|
||||
}
|
||||
|
||||
repositories {
|
||||
// [로컬 개발 순서]
|
||||
// 1. ../dat-lib-datmt에서 .\gradlew.bat :dat-was-lib:publishToMavenLocal 실행
|
||||
// 2. 위 명령이 ~/.m2/repository/io/shinhanlife/dat-lib-datmt에 JAR/POM을 등록
|
||||
// 3. 아래 mavenLocal()이 등록된 JAR을 찾아 implementation 의존성을 해석
|
||||
//
|
||||
// [신한라이프 이관]
|
||||
// mavenLocal() 대신 사내 Nexus Maven repository를 추가합니다.
|
||||
// implementation 좌표는 그대로 유지합니다.
|
||||
mavenLocal()
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// 외부 개발 환경
|
||||
@@ -167,80 +176,3 @@ subprojects {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// Tool Validation
|
||||
// ============================================================================
|
||||
|
||||
|
||||
// Tool Annotation / Tool Schema 검증 프로그램이 들어있는
|
||||
// 공통 라이브러리 프로젝트입니다.
|
||||
def toolCoreProject = project(':dat-was-lib')
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// MCP Tool Name Validation
|
||||
// ============================================================================
|
||||
|
||||
// 전체 Tool Pod 프로젝트에서 선언된
|
||||
// @McpTool(name = "...") 값의 중복 여부를 검사합니다.
|
||||
//
|
||||
// 동일한 Tool Name이 존재하면 배포 산출물 생성 전에
|
||||
// 빌드를 실패시켜 중복 Tool이 배포되는 것을 차단합니다.
|
||||
tasks.register('validateMcpToolNames', JavaExec) {
|
||||
|
||||
// Gradle Verification Task 그룹으로 분류합니다.
|
||||
group = 'verification'
|
||||
|
||||
// Gradle Tasks 조회 시 표시되는 설명입니다.
|
||||
description = 'Checks duplicate @McpTool names across all Tool modules before packaging.'
|
||||
|
||||
|
||||
// 검사 프로그램이 dat-was-lib에 존재하므로
|
||||
// JavaExec 실행 전에 dat-was-lib의 classes 작업을 수행합니다.
|
||||
dependsOn toolCoreProject.tasks.named('classes')
|
||||
|
||||
|
||||
// dat-was-lib의 Runtime Classpath를
|
||||
// Tool Validation Runner 실행 Classpath로 사용합니다.
|
||||
classpath = toolCoreProject.sourceSets.main.runtimeClasspath
|
||||
|
||||
|
||||
// Tool Name 중복 검증을 수행하는 Main Class입니다.
|
||||
mainClass.set(
|
||||
'io.shinhanlife.dat.lib.validation.McpToolNameValidationRunner'
|
||||
)
|
||||
|
||||
// 전체 멀티모듈 프로젝트를 검사할 수 있도록
|
||||
// Root Project 경로를 Runner의 Argument로 전달합니다.
|
||||
args rootProject.projectDir.absolutePath
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// BootJar Validation Hook
|
||||
// ============================================================================
|
||||
|
||||
subprojects {
|
||||
|
||||
// Spring Boot 실행 모듈에서 bootJar를 수행할 경우
|
||||
// 실제 배포 JAR이 만들어지기 전에
|
||||
//
|
||||
// 1. MCP Tool Name 중복 검사
|
||||
// 2. Tool Schema V17 검사
|
||||
//
|
||||
// 두 검증 작업을 반드시 수행하도록 합니다.
|
||||
tasks.matching { it.name == 'bootJar' }.configureEach {
|
||||
|
||||
// @McpTool Name 중복 검증
|
||||
dependsOn rootProject.tasks.named('validateMcpToolNames')
|
||||
|
||||
}
|
||||
}
|
||||
bootJar {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
jar {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user