maven - Maven Asciidoctor 插件和外部图像目录
问题描述
我们有一个单一来源的结构来构建一些 AsciiDoc 文档。一些构建使用带有 AsciiDoctor 插件的 Maven;这是开发团队的要求。
但是我们需要一个共享图像目录(来自另一个构建的要求)。而且我们不想在存储库中使用符号链接,以便人们可以在 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>
请相应地调整文件夹名称。使用filtering
set tofalse
因为图像是二进制文件,您不希望 Maven 在这里进行替换。
根据您的设置,您可能不再需要imagesDir
. imagesDir 将仅指定图像相对于创建的 HTML 文件的位置。因此,它应该始终是一个相对 URL。您的示例将包含一个绝对 URL。
推荐阅读
- onclicklistener - 哪个方法负责点击mapbox多边形android?问二:用哪个list比较好(linked或者arrayListof和hashMap)
- laravel - Laravel required_without 使用电子邮件或数字验证进行验证
- amazon-web-services - 从公共互联网访问在 aws ec2 实例上本地运行的 web api
- jenkins - 如何通过jenkins在groovy中并行执行多个curl调用?
- python - Pandas `read_sql` SUM 列与 CLI 输出不同
- git - git 二进制存储修订优化
- activemq - ActiveMQ 经典控制台持久订阅
- node.js - 我如何知道会话中的用户是否填写了升级表格?
- google-chrome - Chrome PDF 预览产生不活动错误:IPCC.Web.UI.ImGearHttpException:查看器会话 ID 已过期
- reactjs - 为什么 faviocon 没有显示在我的远程项目上,但在我本地托管时显示