RestDocs로 API 문서를 만들려고 테스트 코드 돌리고 문서 간단하게 작성하고 이제 HTML로 짜잔 해야지!
하며 실행시켰지만,, 나의 static 파일에는 아무런 변화가 나타나지 않았다.
먼저, 의존성부터 확인해주었다. (해결책은 제일 아래에)
plugins {
id 'org.springframework.boot' version '2.4.9'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'org.asciidoctor.convert' version '1.5.8'
id 'java'
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}
id 'org.asciidoctor.convert' version '1.5.8' 가 있는지 확인해주었고,
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc'
asciidoctor 'org.springframework.restdocs:spring-restdocs-asciidoctor'
도 존재하는지 확인해주고,
asciidoctor {
inputs.dir snippetsDir
dependsOn test
}
bootJar{
dependsOn asciidoctor
copy {
from "build/asciidoc/html5"
into "src/main/resources/static/docs"
}
}
여기가 항상 문제다.ㅠㅠ전에도 여기서 문제였는데 이번에도 또,,ㅠ
아래에 적어둔 오류가 해결되어도 여기에서 잘못해주면 static에 문서가 생기지 않는다. 문제가 없어보일 때에는 애초에 그냥 지워버리고 다시 새로고침해주고 다시 복붙하여 넣어준 후 새로고침을 해주면 해결되기도 한다. 띄어쓰기 주의!
이렇게 잘 확인도 하고 오른쪽 Gradle에서 Clean - Build를 눌러주었다.
Some problems were found with the configuration of task ':asciidoctor' (type 'AsciidoctorTask'). - In plugin 'org.asciidoctor.convert' type 'org.asciidoctor.gradle.AsciidoctorTask' method 'asGemPath()' should not be annotated with: @Optional, @InputDirectory.
라는 오류가 빌드 중 발생하였다. 애초에 빌드가 되질 않으니 빌드(파일)로부터 파일을 생성할 수가 없었다.
이유가 뭘까하며 구글링을 해보니,,
https://stackoverflow.com/questions/68539790/configuring-asciidoctor-when-using-spring-restdoc
에서 해답을 찾았다.
Gradle 6.x로 버전을 낮추거나 Asciidoctor 플러그인을 최신 버전으로 하라는 것이였다.
저 질문을 했던 분께서는 Gradle 버전을 낮추어 해결했다고 하여 내가 예전에 성공했었던 파일을 다시 열어보고 비교해보니,
오류가 난 지금의 Gradle 버전은 7.1.1 / 성공했던 파일에서의 Gradle은 6.9 였다.
gradlew wrapper --gradle-version 6.9
이 명령을 Terminal에 적어 Gradle 버전을 낮추어주었다. gradle - gradle-wrapper.properties에서 버전을 확인해볼 수 있다.
후에 다시 build를 해주고 실행해주면 static에 문서가 잘 생성되었다.!