배포 오류 : Asciidoctor 빌드 오류(asGemPath())
2025. 3. 9. 22:26ㆍ개발
서비스 품질을 높이기 위해선 안정적인 테스트와 빌드 과정이 필수적이다. 하지만 자동화된 배포 환경을 구축하다 보면 예기치 못한 오류를 만나기도 한다. 이번에 Gradle과 Spring REST Docs를 활용해 CI/CD를 구성하면서 발생했던 오류와 해결 방법을 기록해본다.
🚩 오류 상황
배포 자동화를 구현하는 과정에서 갑자기 빌드 오류가 발생했다. 에러 메시지를 확인해 보니 다음과 같은 문제가 있었다.
검색 결과 Gradle의 버전과 관련된 이슈라는 정보를 찾았고, 버전을 6.5로 낮춰도 여전히 문제가 해결되지 않았다.
🛠️ 문제 해결 방법
결국 플러그인과 build.gradle 파일을 수정하여 문제를 해결할 수 있었다.
1️⃣ 플러그인 수정
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.1'
id 'io.spring.dependency-management' version '1.1.4'
// id "org.asciidoctor.convert" version "1.5.9.2" // 기존 설정 주석 처리
id 'org.asciidoctor.jvm.convert' version "3.3.2" // 변경
}
2️⃣ configurations 추가
configurations를 추가하여 새로 적용한 플러그인을 사용하도록 설정했다.
configurations {
asciidoctorExtensions
}
3️⃣ dependencies 설정 변경
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// asciidoctor 'org.springframework.restdocs:spring-restdocs-asciidoctor' // 기존 설정 주석 처리
asciidoctorExtensions 'org.springframework.restdocs:spring-restdocs-asciidoctor' // 변경
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc'
}
4️⃣ asciidoctor task 변경
마지막으로 asciidoctor task에 새로 추가한 configurations를 지정해주었다.
asciidoctor {
inputs.dir snippetsDir
dependsOn test
configurations 'asciidoctorExtensions'
}
단, 위 변경사항으로 인해 HTML의 생성 경로가 /build/docs/html5에서 /build/docs/asciidoc으로 변경될 수 있으니, 정적 파일로 복사하는 경로를 다시 확인해야 한다.
📌 참고자료
'개발' 카테고리의 다른 글
프로젝트에서 채팅을 구현한 방법 - 채팅 기능 문서화 (0) | 2025.03.25 |
---|---|
[트러블 슈팅] 테스트 실행 시간이 너무 길어요! (0) | 2025.03.25 |
CI/CD : 테스트 실패시, Push 안되게 하기 (0) | 2025.03.09 |
CI/CD : Github Actions를 이용한 배포 자동화 (0) | 2025.03.09 |
Mock : 모의(대역) 객체로 테스트하기 (0) | 2025.03.08 |