개요
프로젝트에서 Spring REST Docs 를 이용하여 API 문서를 만들었다.
빌드 시 adoc 파일을 바탕으로 HTML 파일을 생성하고 싶어 Spring REST Docs 공식 문서 (2.0.7.RELEASE 사용) 를 참고하였는데, 빌드를 하여도 HTML 파일이 생성되지 않는 문제가 발생했다.
결론부터 말하자면 adoc 파일을 바탕으로 빌드 시 생성되는 HTML 파일의 위치가 가 공식 문서에 나온 것과는 다른 것이 원인이었다.
원인

위의 공식 문서를 보면 src/docs/asciidoc 하위에 adoc 파일을 두었을 때, 그래들로 빌드 시 build/asciidoc/html5 하위에 html 이 생성된다.

이를 바탕으로 HTML 문서를 jar 에 패키징하려면 위와 같이 build.gradle 에 작성하면 된다. 코드는 ${asciidoctor.outputDir}/html5 에 있는 파일을 jar 패키징 전에 static/docs 에도 두도록 하는 스크립트이다. 여기서 ${asciidoctor.outputDir} 는 위에서 봤듯이 build/asciidoc 이다.
그런데, 나는 빌드를 몇 번이고 clean 하고 다시 해도 static/docs 에 HTML 파일이 생성되지 않았다. 빌드 시에 adoc 을 바탕으로 생성되는 HTML 파일의 위치도 공식 문서와는 달랐다.

이걸 확인하고 난 후에 ${asciidoctor.outputDir} 아래와 같이 찍어보니,
bootJar { dependsOn asciidoctor println("start bootJar") println("${asciidoctor.outputDir}") copy { from("${asciidoctor.outputDir}") into 'src/main/resources/static/docs' } }

${asciidoctor.outputDir} 가 공식문서와는 달랐다.
이를 확인하고 build.gradle 의 bootJar 코드를 아래와 같이 수정하니 정상적으로 HTML 파일이 static/docs 하위에 생성되었다.
bootJar { dependsOn asciidoctor copy { from("${asciidoctor.outputDir}") into 'src/main/resources/static/docs' } }
'개발' 카테고리의 다른 글
좋아요/싫어요 수 조회 성능 개선 과정 (0) | 2023.08.14 |
---|---|
JPQL 로 Pageable 객체 사용 시 주의할 점 (0) | 2023.07.11 |
도커 컨테이너 로그 설정하기 (0) | 2023.06.14 |
AWS EC2 메모리 부족을 스왑 메모리로 해결하기 (2) | 2023.06.12 |
Github actions, Docker image, Docker hub 를 활용한 CI/CD 과정 (0) | 2023.06.01 |