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

时间:2016-06-16 09:23:45

标签: java maven asciidoc asciidoctor

我有使用AsciiDoc的用户指南,尽管我没有花太多时间,但它非常漂亮。

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

问题:怎么做?

<finalName>${project.artifactId}-${project.version}-${version.state}-r${buildNumber}</finalName>

我的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>

1 个答案:

答案 0 :(得分:8)

official user guidePassing POM properties部分涵盖了此案例:

  

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

     

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

${myMavenProperty}
     

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

<attributes>  
     <project-version>${project.version}</project-version>  
</attributes>

因此,您可以将以下内容应用于现有的The latest version of the project is {project-version}.

configuration