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

MacOS M2环境下Podman运行gradlew失败,求问题排查

解决Podman运行Gradle Wrapper时的mmap错误与主类找不到问题
  • 排查本地Gradle Wrapper包完整性
    错误提示里的mmap failed for CEN and END part of zip file直接指向gradle/wrapper/gradle-wrapper.jar文件损坏或不完整。先在本地Mac项目目录里删掉这个文件,然后执行一次./gradlew,让它自动下载对应版本的完整jar包,再重新挂载到容器中运行。

  • 调整容器权限设置
    你用的--userns=keep-id:uid=1000,gid=1000可能导致容器内用户无权限读取挂载的文件。可以先去掉这个参数,换成以下命令测试:

    podman run --rm -it -v $(pwd):/app -w /app gradle:7.4-jdk8 bash
    

    如果正常执行,再修正本地文件权限:

    sudo chown -R 1000:1000 ./gradle
    

    之后再用原来的--userns参数运行容器。

  • 在容器内重新生成Gradle Wrapper
    进入容器后,先删除挂载过来的损坏wrapper文件,重新生成完整的wrapper组件:

    rm -rf ./gradle
    gradle wrapper --gradle-version 7.4
    ./gradlew cleanTest test --no-daemon
    

    容器内生成的jar包不会受本地文件问题影响,能保证完整性。

  • 避免挂载,直接复制文件到容器
    Mac Podman的虚拟机挂载偶尔会有文件系统兼容性问题,导致zip文件损坏。可以先把项目复制到容器内再执行命令:

    # 启动容器并后台运行
    podman run -d --name gradle-test -w /app gradle:7.4-jdk8 sleep 3600
    # 复制本地项目到容器
    podman cp . gradle-test:/app
    # 进入容器执行命令
    podman exec -it gradle-test bash
    ./gradlew cleanTest test --no-daemon
    # 执行完删除容器
    podman stop gradle-test && podman rm gradle-test
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 09:33:32