Skip to content

Kotlin Gradle 플러그인 테스트 classpath 중복 이슈 해결 #214

@Whale0928

Description

@Whale0928

배경

  • admin-api (Kotlin)에 Liquibase 적용 후, schema.mysql.sql 파일이 classpath에 2번 잡혀 Liquibase 중복 파일 에러 발생
  • product-api (Java)에서는 동일 구성에서 문제 없음

원인

  • Java Gradle 플러그인: 테스트 시 main output을 plain jar로만 참조
  • Kotlin Gradle 플러그인: build/resources/main/을 테스트 classpath에 직접 추가 + plain jar도 포함
  • 결과적으로 같은 파일이 build/resources/main/과 plain jar 안에 중복 존재

해결

  • tasks.jar에서 exclude("storage/mysql/changelog/**") 적용
  • plain jar에 changelog가 포함되지 않도록 하여 build/resources/main/에서 1번만 찾도록 함
  • changelog는 테스트 전용이므로 런타임 plain jar에서 제외해도 무방

변경 파일

  • bottlenote-admin-api/build.gradle.kts

참고 문서

  • 개발문서/2026.03.31 Kotlin_Gradle_Liquibase_테스트_Classpath_중복_이슈_분석.md

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions