Jenkins集成Checkmarx后如何排除.tsx类型文件扫描
解决Jenkins Checkmarx扫描排除.tsx文件的问题
你之前把.tsx加到excludeFolders参数里没生效,是因为这个参数仅用于排除文件夹,不能直接排除特定后缀的文件。下面是两种正确的实现方式:
方法一:通过Jenkins的exclusionsSetting参数配置
Checkmarx的Jenkins插件提供了exclusionsSetting参数,专门用于设置文件/路径的排除规则,支持通配符语法。你只需要将该参数的值设为*.tsx即可排除所有.tsx文件:
修改后的Stage配置如下:
stage('Static Code Analysis') { steps { step([$class: 'CxScanBuilder', comment: '', credentialsId: 'Checkmarx', hideDebugLogs: true, excludeFolders: '.helmignore, build, templates, javadocs, javadoc, dist, node_modules, .js, .env.development, .git, public, .env.local, .gitignore, ci_job.sh, Jenkinsfile, uat_frontend.yaml', excludeOpenSourceFolders: '', exclusionsSetting: '*.tsx', // 新增配置:排除所有.tsx文件 failBuildOnNewResults: false, failBuildOnNewSeverity: 'MEDIUM', fullScanCycle: 10, teamPath: 'CxServer/Cigna/MCHI', includeOpenSourceFolders: '', osaArchiveIncludePatterns: '*.zip, *.war, *.ear, *.tgz', incremental: true, osaInstallBeforeScan: false, preset: 'Cigna - High and Medium - Web', projectName: "${getProjectKey()}-${determineRepoName()}-${getCheckmarxEnvironmentName()}", sastEnabled: true, serverUrl: 'https://cigna.checkmarx.net/', sourceEncoding: '1', vulnerabilityThresholdResult: 'FAILURE', generatePdfReport: true, scaReportFormat: 'PDF' , waitForResultsEnabled: true]) } }
如果需要排除多种文件,用分号分隔规则,比如*.tsx;*.d.ts。
方法二:使用Checkmarx配置文件(推荐长期维护)
在代码仓库的根目录创建.cxignore或cx.config.xml文件,在其中添加排除规则:
- 若用
.cxignore,直接写入:*.tsx - 若用
cx.config.xml,添加对应的规则节点:<CxXML> <ExcludeFiles> <File>*.tsx</File> </ExcludeFiles> </CxXML>
Jenkins在执行Checkmarx扫描时会自动读取根目录的配置文件,这种方式更适合团队统一维护排除规则。
额外注意事项
- 确保你的Checkmarx Jenkins插件版本是较新的,旧版本可能对
exclusionsSetting参数的支持存在问题; - 如果使用配置文件,要保证文件存在于代码仓库的根目录,且Jenkins构建过程能访问到该文件。
内容的提问来源于stack exchange,提问作者amey kambli
相关产品推荐
相关产品推荐

