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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 23:55:21