Spring REST Docs: как вывести PDF вместо HTML? Неразрешенная директива - PullRequest
0 голосов
/ 07 мая 2019

Я прочитал документацию для Spring REST Docs и смог сгенерировать HTML-файл из фрагментов, добавив в плагин еще один блок выполнения, и я также могу создать PDF:

<execution>
    <id>output-pdf</id>
    <phase>prepare-package</phase>
    <goals>
        <goal>process-asciidoc</goal>
    </goals>
    <configuration>
        <backend>pdf</backend>
        <doctype>book</doctype>
        <attributes>
            <snippets>${project.build.directory}/generated-snippets</snippets> 
            <icons>font</icons>
            <pagenums/>
            <toc/>
            <idprefix/>
            <idseparator>-</idseparator>
        </attributes>
    </configuration>
</execution>

проблема в том, что сгенерированный pdf не содержит ни одного фрагмента, сгенерированного документами Spring REST, а вместо этого:

Unresolved directive in api-doc.adoc - include::{snippets}/request-parts.adoc[]
Unresolved directive in api-doc.adoc - include::{snippets}/response-body.adoc[]
Unresolved directive in api-doc.adoc - include::{snippets}/response-fields.adoc[]

Похоже, он не находит местоположение фрагментов, поэтому они не отображаются,

1 Ответ

0 голосов
/ 08 мая 2019

Похоже, вы уже близко.Пожалуйста, убедитесь, что вы добавили asciidoctorj-pdf и asciidoctorj как зависимости к asciidoctor-maven-plugin.Следующий фрагмент Maven показывает эту настройку.Эта конфигурация генерирует как HTML, так и PDF вывод.Его можно уменьшить до одного, удалив другой блок выполнения.

<plugin>
    <groupId>org.asciidoctor</groupId>
    <artifactId>asciidoctor-maven-plugin</artifactId>
    <version>1.5.6</version>
    <dependencies>
        <dependency>
            <groupId>org.asciidoctor</groupId>
            <artifactId>asciidoctorj-pdf</artifactId>
            <version>1.5.0-alpha.16</version>
        </dependency>
        <dependency>
            <groupId>org.asciidoctor</groupId>
            <artifactId>asciidoctorj</artifactId>
            <version>1.5.6</version>
        </dependency>
    </dependencies>
    <executions>
        <execution>
            <id>generate-docs</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>process-asciidoc</goal>
            </goals>
            <configuration>
                <backend>html</backend>
                <doctype>book</doctype>
                <sourceHighlighter>highlightjs</sourceHighlighter>
            </configuration>
        </execution>
        <execution>
            <id>generate-pdf-docs</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>process-asciidoc</goal>
            </goals>
            <configuration>
                <backend>pdf</backend>
                <sourceHighlighter>coderay</sourceHighlighter>
            </configuration>
        </execution>
    </executions>
</plugin>

Эта настройка работает для меня.В данный момент у меня нет под рукой примера Gradle.

...