Spring REST Docs - как настроить задачу asciidoctor для включения сгенерированного фрагмента в индекс?

У меня есть файл index.adoc, расположенный в: src/docs/asciidoc/index.adoc

С содержимым: include::{snippets}/add-measurement/curl-request.adoc[]

Когда я вызываю задачу сборки, сгенерированные фрагменты находятся здесь: build/generated-snippets/my-call/*.adoc

Но когда я смотрю на сгенерированные index.html, оказывается, что фрагменты не включены:

Unresolved directive in index.adoc - include::{snippets}/add-measurement/curl-request.adoc[]

Моя asciidoctor задача в build.gradle:

asciidoctor {
    dependsOn junitPlatformTest
}

Когда я добавляю sourceDir snippetsDir в задачу asciidoctor gradle, каждый фрагмент преобразуется в html, но index.html не создается.


person pixel    schedule 10.03.2018    source источник


Ответы (1)


По вашей информации, snippetsDir настроен и сниппеты помещаются в ожидаемую папку, а AsciiDoctor sourceDir уже корректен, так как генерируется index.html (но с неработающими включениями). Итак, единственное, чего, похоже, не хватает, это передать snippetDir в AsciiDoctor:

asciidoctor {
  inputs.dir snippetsDir
  dependsOn junitPlatformTest  
}

or

asciidoctor {
  attributes "snippets": snippetsDir
  dependsOn junitPlatformTest  
}

Примеры рабочих настроек Gradle:

person Florian Benz    schedule 10.03.2018
comment
Атрибут snippets должен быть установлен автоматически, если вы используете модуль spring-restdocs-asciidoctor, который предоставляет расширение Asciidoctor. К сожалению, в версии 1.5.6 Asciidoctor Gradle есть ошибка. plugin, что означает, что он не работает надежно при использовании демона Gradle. Возврат к версии 1.5.3 или отключение демона решит проблему. - person Andy Wilkinson; 10.03.2018