You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Maven Site Plugin时Markdown资源链接路径不一致问题求助

解决Maven Site Plugin中Markdown资源链接的源码预览与生成后一致性问题

方案1:调整资源存放目录(最直接省心)

把src/site/resources/FER整个移到src/site/markdown/FER下面。这样:

  • 写Markdown时,图片链接直接用![Home Screen](./FER/01_homeScreen.png),本地编辑器预览能直接加载图片(资源和MD文件在同一父目录的子文件夹里);
  • 插件编译时,会把src/site/markdown下的所有内容(包括FER子目录)直接输出到站点根目录,生成的HTML里链接还是./FER/01_homeScreen.png,完美匹配目标路径。

方案2:用站点根相对路径(适合不想动目录的情况)

如果不想改目录结构,把资源链接改成以/开头的站点根相对路径:
![Home Screen](/FER/01_homeScreen.png)

  • 生成后的站点里,链接会指向根目录下的FER/01_homeScreen.png,完全符合插件的输出逻辑;
  • 本地预览时,部分编辑器(比如VS Code)可以把预览根目录设为src/site,这样也能正常显示图片。

方案3:Maven属性动态替换(兼顾两种场景)

用Maven属性+资源过滤实现链接自适应:

  1. 在pom.xml的<properties>里加一行:
<resource.path>../resources</resource.path>
  1. 配置Maven Site Plugin开启Markdown文件的过滤:
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-site-plugin</artifactId>
  <version>4.0.0-M9</version>
  <configuration>
    <markdownPlugins>
      <plugin>
        <groupId>org.apache.maven.doxia</groupId>
        <artifactId>doxia-module-markdown</artifactId>
        <version>1.12.0</version>
      </plugin>
    </markdownPlugins>
    <resources>
      <resource>
        <directory>src/site/markdown</directory>
        <filtering>true</filtering>
        <includes>
          <include>**/*.md</include>
        </includes>
      </resource>
    </resources>
  </configuration>
</plugin>
  1. Markdown里用属性写链接:
    ![Home Screen](${resource.path}/FER/01_homeScreen.png)
  2. 编译站点时通过命令行覆盖属性,适配生成路径:
mvn site -Dresource.path=.

这样本地编辑时用../resources路径预览,编译时自动换成当前目录路径。

若以上方案都不满足需求

可以考虑向Apache Maven Site Plugin提交功能请求,建议添加对src/site/resources目录资源的相对链接自动转换逻辑(类似现在处理.md转.html的机制),让源码里的../resources/xxx链接在生成时自动转为./xxx。

内容的提问来源于stack exchange,提问作者user2609605

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 07:05:20