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

Asciidoctor Maven Plugin生成的index.html无读取权限致构建失败

问题

使用asciidoctor-maven-plugin:2.2.2生成index.htm文件时触发构建错误,报错原因是生成的文件无读取权限。执行mvn clean install命令触发该问题,该命令在其他机器上可正常运行,但在M1 MacBook Pro上失败。已尝试更换Java版本(当前使用17 Zulu)和Maven版本(3.8.6),问题仍未解决。相关信息包括构建失败堆栈、文件权限情况、pom.xml插件配置。

解决方案

1. 显式指定输出目录并预设置权限

M1 Mac的系统权限策略可能导致默认输出目录权限异常,可在插件配置中指定输出目录,提前创建并赋予权限:

<plugin>
    <groupId>org.asciidoctor</groupId>
    <artifactId>asciidoctor-maven-plugin</artifactId>
    <version>2.2.2</version>
    <configuration>
        <outputDirectory>${project.build.directory}/generated-docs</outputDirectory>
        <!-- 保留原有其他配置 -->
    </configuration>
</plugin>

构建前执行命令创建目录并设置权限:

mkdir -p target/generated-docs && chmod 755 target/generated-docs

2. 配置插件生成文件的权限

直接通过插件的permissions参数指定生成文件的权限,确保后续步骤可读取:

<plugin>
    <groupId>org.asciidoctor</groupId>
    <artifactId>asciidoctor-maven-plugin</artifactId>
    <version>2.2.2</version>
    <configuration>
        <!-- 原有配置 -->
        <permissions>644</permissions>
    </configuration>
</plugin>

3. 强制设置Maven资源文件权限

通过maven-resources-plugin强制统一输出文件和目录的权限,避免权限继承问题:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.3.0</version>
    <configuration>
        <filePermissions>644</filePermissions>
        <directoryPermissions>755</directoryPermissions>
    </configuration>
</plugin>

4. 检查终端的磁盘访问权限

确保运行Maven的终端应用拥有完全磁盘访问权限:

  • 打开「系统设置」→「隐私与安全性」→「完全磁盘访问权限」
  • 勾选对应的终端(如Terminal、iTerm),重启终端后重新执行mvn clean install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:45:38