如何在GitHub Actions中启用Gradle Build Scan?
Gradle Build Scan在GitHub Actions中无法发布的解决方法
1. 先搞定Build Scan的条款同意
Gradle Build Scan必须明确同意服务条款,CI环境里没有交互弹窗,直接加--scan会默认跳过发布。你有两种配置方式:
- 方式一:通过gradle.properties配置
在项目根目录的gradle.properties文件里添加:
systemProp.org.gradle.build-scan.terms-of-service-agree=yes systemProp.org.gradle.build-scan.publish=always
- 方式二:通过settings.gradle配置
在settings.gradle(或Kotlin版的settings.gradle.kts)里添加Build Scan插件并配置:
// settings.gradle plugins { id 'com.gradle.build-scan' version '3.14.1' // 用最新兼容版本即可 } buildScan { termsOfServiceUrl = 'https://gradle.com/terms-of-service' termsOfServiceAgree = 'yes' publishAlways() // 强制在CI环境发布扫描报告 }
// settings.gradle.kts plugins { id("com.gradle.build-scan") version "3.14.1" } buildScan { termsOfServiceUrl.set("https://gradle.com/terms-of-service") termsOfServiceAgree.set("yes") publishAlways() }
2. 检查GitHub Actions的Gradle动作配置
你用的gradle/actions/setup-gradle@v4默认支持Build Scan发布,别在动作里加禁用参数,比如build-scan-publish: false这类配置要删掉。同时确保Gradle版本和Build Scan插件版本兼容,建议用Gradle 7.0以上版本。
3. 调整构建命令参数
在工作流的构建步骤里,用下面的命令可以强制触发发布:
./gradlew build sonar --scan -Dorg.gradle.build-scan.terms-of-service-agree=yes -Dorg.gradle.build-scan.publish=always
4. 查日志找具体原因
去你的工作流运行日志里搜Build Scan关键词,里面会明确说明为什么没发布——比如“未同意条款”“发布被跳过”之类的提示,跟着调整就行。
内容的提问来源于stack exchange,提问作者Yevhen Vasyliev
相关产品推荐
相关产品推荐

