如何将Maven变量传递给asciidoctor-maven-plugin?

Xel*_*ian 6 java asciidoc maven asciidoctor

我有使用AsciiDoc的用户指南它很漂亮,尽管我没有花太多时间.

AsciiDoc插件很棒.所以我想在用户指南中传递我的Maven最终名称.

问题:怎么做?

<finalName>${project.artifactId}-${project.version}-${version.state}-r${buildNumber}</finalName>
Run Code Online (Sandbox Code Playgroud)

我的asciidoctor-maven-plugin配置是:

<plugin>
    <groupId>org.asciidoctor</groupId>
    <artifactId>asciidoctor-maven-plugin</artifactId>
    <version>${asciidoctor.maven.plugin.version}</version>
    <dependencies>
        <dependency>
            <groupId>org.asciidoctor</groupId>
            <artifactId>asciidoctorj-pdf</artifactId>
            <version>${asciidoctorj.pdf.version}</version>
        </dependency>
        <!-- Comment this section to use the default jruby artifact provided by the plugin -->
        <dependency>
            <groupId>org.jruby</groupId>
            <artifactId>jruby-complete</artifactId>
            <version>${jruby.version}</version>
        </dependency>
        <!-- Comment this section to use the default AsciidoctorJ artifact provided by the plugin -->
        <dependency>
            <groupId>org.asciidoctor</groupId>
            <artifactId>asciidoctorj</artifactId>
            <version>${asciidoctorj.version}</version>
        </dependency>
    </dependencies>
    <configuration>
        <sourceDirectory>src/docs/asciidoc</sourceDirectory>
        <sourceDocumentName>manual.adoc</sourceDocumentName>
        <!-- Attributes common to all output formats -->
        <attributes>
            <sourcedir>${project.build.sourceDirectory}</sourcedir>
        </attributes>
    </configuration>
    <executions>
        <execution>
            <id>generate-pdf-doc</id>
            <phase>generate-resources</phase>
            <goals>
                <goal>process-asciidoc</goal>
            </goals>
            <configuration>
                <backend>pdf</backend>
                <!-- Since 1.5.0-alpha.9 PDF back-end can use 'rouge' as well as 'coderay'
            source highlighting -->
                <sourceHighlighter>rouge</sourceHighlighter>
                <attributes>
                    <icons>font</icons>
                    <pagenums/>
                    <toc/>
                    <idprefix/>
                    <idseparator>-</idseparator>
                </attributes>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

A_D*_*teo 9

官方用户指南涵盖这种情况下,它的传POM性能部分:

可以将POM中定义的属性传递给Asciidoctor处理器.例如,在生成的文档中包含POM工件版本号是很方便的.

这是通过在.的attributes部分中创建自定义AsciiDoc属性来完成的configuration.AsciiDoc属性值以通常的Maven方式定义:${myMavenProperty}.

<attributes>  
     <project-version>${project.version}</project-version>  
</attributes>
Run Code Online (Sandbox Code Playgroud)

然后可以在文档中使用自定义的AsciiDoc属性,如下所示:

The latest version of the project is {project-version}.
Run Code Online (Sandbox Code Playgroud)

因此,您可以将以下内容应用于您现有的configuration:

<configuration>
    <sourceDirectory>src/docs/asciidoc</sourceDirectory>
    <sourceDocumentName>manual.adoc</sourceDocumentName>
    <!-- Attributes common to all output formats -->
    <attributes>
        <sourcedir>${project.build.sourceDirectory}</sourcedir>
        <!-- the new property -->
        <final-name>${project.build.finalName}</final-name>
    </attributes>
</configuration>
Run Code Online (Sandbox Code Playgroud)