You need to enable JavaScript to run this app. 多项目执行gradlew dependencies --scan如何自动同意许可协议?
优惠活动
大模型
产品
解决方案
定价
更多

多项目执行gradlew dependencies --scan如何自动同意许可协议?

解决方案

错误原因分析

你之前使用的< "yes"属于文件输入重定向语法,要求右侧参数为文件路径,你传入的是字符串yes,系统会尝试读取当前目录下名为yes的文件,自然会抛出bash: yes: No such file or directory的报错。

可行方案

方案1:使用yes命令管道

yes是系统内置命令,会持续输出yes字符串,通过管道传递给gradlew即可自动应答确认:

# 单项目执行
yes | ./gradlew dependencies --scan

# 批量脚本改造
for ...; do cd ...; yes | ./gradlew dependencies --scan; done

方案2:使用Gradle官方参数(更稳定)

Gradle扫描插件原生提供了跳过协议确认的JVM参数,无需依赖管道,兼容性更强,不会误应答其他交互提示:

./gradlew dependencies --scan -Dscan.agreeToTermsOfServiceUrl=yes

批量脚本直接替换原命令即可。

方案3:永久全局生效配置

如果需要长期使用--scan参数,可以在全局Gradle配置中添加参数永久跳过确认:

  1. 编辑用户目录下的~/.gradle/gradle.properties文件(不存在则新建)
  2. 添加如下配置:
systemProp.scan.agreeToTermsOfServiceUrl=yes

配置完成后所有带--scan的gradlew命令都不需要手动确认协议。

补充说明

如果想用字符串作为标准输入传递给命令,也可以使用here-string语法:

./gradlew dependencies --scan <<< "yes"

该写法可以解决你之前的报错问题,但仍推荐优先使用官方参数方案,可靠性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 23:15:04