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

Gradlew无法找到AWS CLI求助:Java11+Gradlew6.3环境异常

解决M1 Mac上Java11+Gradle6.3调用AWS CLI找不到命令的问题

问题原因

M1芯片Mac的Homebrew默认安装路径为/opt/homebrew/bin,Gradle 6.x版本在M1环境下启动时,无法完整继承终端的PATH环境变量,导致Gradle进程找不到AWS CLI的执行路径;而Gradle 7.4.2已修复该环境变量继承问题,因此Java17+Gradle7.4.2组合可正常运行。

解决方案

1. 确认AWS CLI的绝对路径

在终端执行以下命令,获取aws命令的完整路径:

which aws

输出示例:/opt/homebrew/bin/aws 或 /usr/local/bin/aws

2. 直接使用AWS CLI绝对路径调用

修改Gradle脚本中调用AWS命令的部分,将aws替换为上述绝对路径,例如:

exec {
    commandLine '/opt/homebrew/bin/aws', 'codeartifact', 'get-authorization-token', '--domain', 'myComany', '--domain-owner', '49XXXXXXXXXX', '--query', 'authorizationToken', '--output', 'text'
}

3. 为Gradle进程手动注入PATH环境变量

在项目的build.gradle中添加配置,确保Gradle进程能获取到包含AWS CLI的PATH:

// 全局为所有JavaExec任务设置PATH
tasks.withType(JavaExec) {
    environment 'PATH', "/opt/homebrew/bin:/usr/local/bin:$System.env.PATH"
}

// 若为自定义任务调用AWS命令,可单独在任务内设置
task fetchCodeArtifactToken {
    doLast {
        exec {
            environment 'PATH', "/opt/homebrew/bin:/usr/local/bin:$System.env.PATH"
            commandLine 'aws', 'codeartifact', 'get-authorization-token', '--domain', 'myComany', '--domain-owner', '49XXXXXXXXXX', '--query', 'authorizationToken', '--output', 'text'
        }
    }
}

注意替换路径为你实际获取到的AWS CLI路径。

4. 修改gradlew启动脚本

打开项目根目录下的gradlew文件,在exec "$JAVACMD" "$@"行之前添加以下内容,确保每次启动Gradle时都加载正确的PATH:

export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"

内容的提问来源于stack exchange,提问作者Abu Saleh Musa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 13:26:05