添加sentry插件后执行Gradle Build出现licenseMain任务配置错误
Gradle构建错误解决方案(Sentry+License插件冲突)
问题背景
添加Sentry JVM Gradle插件(id 'io.sentry.jvm.gradle' version '3.13.0')后执行./gradlew build,触发两类构建错误,项目已预先配置com.github.hierynomus.license插件(v0.16.1)及本地license.gradle文件。
错误1:LICENSE文件缺失
错误详情
licenseMain任务(LicenseCheck类型)指定的header文件/Users/user/work/projects/con/cfc/LICENSE不存在,导致输入文件校验失败。
解决步骤
- 直接创建文件:检查指定路径,若确实无LICENSE文件,创建或复制符合项目许可要求的LICENSE文件到该路径。
- 关联生成任务(若LICENSE为动态生成):如果LICENSE文件由其他Gradle任务生成,在
license.gradle中添加依赖声明,确保生成任务先执行:tasks.named('licenseMain') { dependsOn tasks.named('你的LICENSE生成任务名') // 替换为实际任务名称 }
错误2:任务执行顺序依赖缺失
错误详情
licenseMain扫描了Sentry插件生成的build/generated/sentry目录,但未声明对generateSentryDebugMetaPropertiesjava和collectExternalDependenciesForSentry任务的依赖,Gradle检测到执行顺序风险。
解决步骤
在项目的build.gradle或license.gradle中添加依赖配置,确保Sentry的生成任务先于licenseMain执行:
方案1:强依赖(推荐)
确保Sentry任务完成后才执行licenseMain:
tasks.named('licenseMain') { dependsOn tasks.named('generateSentryDebugMetaPropertiesjava') dependsOn tasks.named('collectExternalDependenciesForSentry') }
方案2:指定执行顺序(非强依赖)
仅保证licenseMain在Sentry任务之后执行,不强制Sentry任务必须成功:
tasks.named('licenseMain') { mustRunAfter tasks.named('generateSentryDebugMetaPropertiesjava') mustRunAfter tasks.named('collectExternalDependenciesForSentry') }
内容的提问来源于stack exchange,提问作者user352290
相关产品推荐
相关产品推荐

