如何在AzureDevOps的Synopsys Detect8任务中排除Android项目的测试依赖
Android项目BlackDuck扫描排除测试依赖失效问题解决建议
我有一个Android项目,正在AzureDevOps流水线中使用SynopsysDetectTask@8执行BlackDuck扫描,配置如下:
- task: SynopsysDetectTask@8 displayName: 'Run Synopsys Detect for your build ' inputs: BlackDuckService: '$(BlackDuckService)' DetectArguments: | --detect.project.name=$(Build.Repository.Name) --detect.project.version.name=v1 --detect.gradle.excluded.configurations=test...{some long list of test libs}
但扫描结果仍包含所有本应被排除的测试依赖,已参考Synopsys社区的排除配置方案但未解决,以下是针对性排查与解决步骤:
排查与解决步骤
修正配置参数格式
放弃test...这类模糊匹配写法,Android Gradle的测试相关配置为明确的testImplementation、debugTestImplementation、releaseTestImplementation等,需直接指定完整配置名称,用逗号分隔:--detect.gradle.excluded.configurations=testImplementation,debugTestImplementation,releaseTestImplementation添加Gradle任务级过滤
在项目模块的build.gradle中,直接为BlackDuck扫描任务配置排除规则,优先级高于流水线参数:tasks.withType(com.synopsys.integration.gradle.blackduck.task.BlackDuckScanTask) { excludedConfigurations = ['testImplementation', 'debugTestImplementation', 'releaseTestImplementation'] }指定兼容的Detect版本
SynopsysDetectTask@8默认版本可能存在Android配置识别问题,在DetectArguments中添加明确的稳定版本号:--detect.version=8.6.0验证依赖归属配置
在流水线中添加Gradle任务输出依赖树,确认测试依赖所属的配置项,确保排除名称完全匹配:- task: Gradle@2 inputs: gradleWrapperFile: 'gradlew' tasks: 'dependencies'
内容的提问来源于stack exchange,提问作者AndroidDev
相关产品推荐
相关产品推荐

