常见问题

编译失败相关

为什么会编译失败

这有可能是扫描方案中使用的编译环境及编译命令无法解析您提供的代码,部分扫描工具需要分析编译过程的中间代码,以更精准的定位潜在缺陷。当前使用的编译型工具包括 SQJava、Spotbugs、InferJavaCustomized

如何解决编译失败问题

你可以在「扫描历史」→「扫描日志」→「工具日志」中下载执行日志,其中通常会包含具体编译失败的信息。

以下是常见解决编译失败的方案:

  1. 扫描方案中的编译配置不正确。比如 maven 项目选择 gradle 工具,或其他编译命令有误,可以前往「扫描方案」→「编译配置」中进行确认。

  2. 存在私服依赖。需将配置文件上传至代码仓库,并在编译命令中自行指定 setting 文件,比如 mvn compile -gs $WORKPATH/setting.xml。如果私服无法访问,请使用自定义节点+扫描插件,详情请查看接入自定义节点使用扫描插件

扫描时间过久

扫描的执行时间,主要受两个维度影响:代码量和启用规则数量。对于部分语言比如 Java 推荐方案中启用的规则较多,若代码量较大的情况下较易出现扫描时间过久的情况。

以下是常见处理执行过久的方案:

  1. 减少不需要的规则。在扫描方案中适当屏蔽不需要的规则,按照工具维度屏蔽规则。点击了解详情。 具体操作请参考 如何屏蔽规则。
  2. 屏蔽无需扫描的代码。前往 「扫描方案」->「过滤配置」设置过滤路径或无需扫描的代码文件。
  3. 拉取依赖超时。若您的方案中有编译型工具,且部分依赖存放在私服中,请注意编译命令中是否指定了 setting 文件,以及是否允许 CODING 服务器访问私服,避免因拉取依赖太久导致执行超时。
  4. 自定义节点不受超时限制,可将自定义机器接入 CODING,使用自定义节点+扫描插件,详情请查看 接入自定义节点使用扫描插件
  5. 若您当前为标准版团队账号,可以考虑升级至高级版,以提升构建时间(从 30min 变为 2h),具体操作可查看 付费流程

屏蔽规则

若部分规则存在发现问题价值低、误报率高等问题,而不希望继续使用该规则进行扫描,可以在问题列表中选取低价值问题,直接屏蔽对应规则。

在问题详情中也可以通过查看问题详细信息及规则信息判断是否需要屏蔽此规则。

若希望整体梳理规则,可以通过扫描方案中的「已启用规则」查看当前方案使用的所有规则。

勾选后快速屏蔽此类规则。

启用更强的扫描能力

除了推荐规则外,在规则库中提供了大量可用规则,你可以按需启用已封装好的规则包,根据实际情况定制项目所需的扫描能力。

从规则库中挑选规则并添加至扫描方案。

最近更新
感谢反馈有用
感谢反馈没用

在阅读中是否遇到以下问题?

您希望我们如何改进?