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

如何在Azure AdvancedSecurity中排除Java项目中的文件夹

解决Azure DevOps中CodeQL扫描Java项目时排除文件夹的问题

以下是几种可靠的替代方案,解决AdvancedSecurity-Codeql-Init@1的codeqlpathstoignore参数对Java无效的问题:

  • 使用CodeQL本地配置文件
    在项目根目录创建.codeql/config.yml文件,通过paths-ignore字段指定要排除的路径,该配置对所有语言扫描都生效。示例:

    paths-ignore:
      - 'src/test/**'
      - 'external-libs/**'
      - 'build/generated/**'
    

    提交这个文件到仓库后,CodeQL扫描会自动读取并忽略指定路径。

  • 从构建过程中排除目标文件夹
    CodeQL扫描基于项目构建时的代码产物,若目标文件夹不参与构建,自然不会被扫描:

    • 对于Maven项目:在pom.xml中通过<excludes>标签排除特定目录,或者在Azure DevOps的Maven任务中添加参数-Dmaven.test.skip=true(针对测试文件夹);
    • 对于Gradle项目:在build.gradle中配置sourceSets排除目标路径,比如:
      sourceSets {
          main {
              java {
                  exclude '**/test/**'
                  exclude '**/third-party/**'
              }
          }
      }
      
  • 配置仓库级Advanced Security排除规则
    在Azure DevOps仓库的设置中,找到Advanced Security -> Code scanning -> Exclusions,添加要忽略的路径模式。该设置是全局的,会应用到所有针对此仓库的CodeQL扫描任务。

  • 在管道中执行CodeQL数据库排除命令
    在AdvancedSecurity-Codeql-Init@1任务之后,添加一个脚本任务,调用codeql database exclude命令手动排除目标路径。示例(Bash脚本):

    codeql database exclude $(Agent.TempDirectory)/codeql_databases/java --path 'src/test/**'
    

    注意替换$(Agent.TempDirectory)/codeql_databases/java为你实际的CodeQL数据库路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 17:33:15