Maven Asciidoctor插件和外部图像目录



我们有一个单一来源的结构来构建一些AsciiDoc文档。一些构建使用Maven和AsciiDoctor插件;这是 Dev Tean 的要求。

但是我们需要一个共享映像目录(另一个构建的要求(。而且我们不想在存储库中使用符号链接,以便人们可以在Windows上进行本地构建。

我们现在这样做的方法是在pom.xml的asciidoctor插件配置中指向imagesdir:

<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<configuration>
<imagesDir>${project.basedir}/../../_images</imagesDir>
</configuration>
</plugin>

当构建工作时,它无法将映像复制到target/generated-docs中。而是在其现有位置引用图像。

如何使 Maven 构建正确复制这些图像,并在 HTML 文件中引用生成的文档中的副本?我当然可以编写一个后处理脚本,但在 Maven 中必须有某种方法可以做到这一点?..

您可以使用资源插件复制所有图像。将此添加到您的构建中:

<build>
<resources>
<resource>
<directory>src/main/asciidoc/images</directory>
<targetPath>../generated-docs/images</targetPath>
<filtering>false</filtering>
</resource>
</resources>
</build>

请相应地调整文件夹名称。使用设置为falsefiltering因为图像是二进制文件,并且您不希望Maven在此处进行替换。

根据您的设置,您可能不再需要imagesDir。图像目录将仅指定图像相对于创建的HTML文件的位置。因此,它应始终是相对 URL。您的示例将包含一个绝对 URL。

最新更新