我们有一个单一来源的结构来构建一些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>
请相应地调整文件夹名称。使用设置为false
filtering
因为图像是二进制文件,并且您不希望Maven在此处进行替换。
根据您的设置,您可能不再需要imagesDir
。图像目录将仅指定图像相对于创建的HTML文件的位置。因此,它应始终是相对 URL。您的示例将包含一个绝对 URL。