7

我在 stackoverflow 上阅读了几篇文章,其中指出,使用声纳作为预提交分析工具效率低下,因为它必须运行整个项目的编译、运行分析等。

但是,sonarqube 的手册指出有一个sonar.inclusions属性用于设置要运行分析的文件列表。因此,我正在考虑对已更改/修改为预提交挂钩的文件进行分析,并在添加太多问题的情况下使提交失败。

据我了解,可以通过svnlook获取修改和添加的文件列表;还可以将声纳分析器指向一个具体的.properties文件(例如,指向只有编码规则和圈复杂度和 LCOM4 指标的配置的文件)。

但是,我不明白如何在预提交挂钩脚本中获取 Sonar 分析的结果,并提供分析结果的链接。有可能吗?是否有任何现实世界或至少远程相关的此类实践示例?

提前致谢。

4

2 回答 2

4

但是,我不明白如何在预提交挂钩脚本中获取 Sonar 分析的结果,并提供分析结果的链接。有可能吗?

从预先提交,没有。如果您希望完成提交,至少不会。如果预提交向客户端返回任何内容,则提交被拒绝。

预提交只应用于检查提交以验证是否满足要求 - 检查是否提供了提交消息,如果您与错误跟踪器集成,请确保输入了有效的错误 ID,也许做一些内置的基于路径的授权无法处理的安全检查。

所有的钩子脚本都应该尽可能的简短和高效。一个长期运行的预提交尤其会阻止提交者和任何其他试图在他身后提交的人。

对于您的使用,提交后挂钩可能会起作用(除了它无法向客户端发送反馈,因此您将无法提供 URL),但更好的解决方案是使用持续集成服务器。该工具将监视存储库的更改,并在每次发生合格提交时执行您告诉它的操作。使用该系统执行检查并发送包含结果的电子邮件。

于 2013-09-29T19:07:20.767 回答
0

我不知道这个线程是否仍然存在,但正在处理类似的情况并因此做出响应。

问题报告插件可以生成一个 html,然后可以对其进行解析(一个单独的过程 - 我正在使用 shell 脚本和正则表达式,作为 jenkins 作业的一部分)来确定是否报告了新问题,如果是,可以返回一个失败。

于 2016-03-04T13:32:09.567 回答