2014-10-16 50 views
2

我们正在开发Web应用程序作为一个团队,并决定是符合声纳规则在我国持续集成服务器在提交之前的所有插件checkstyles,PMD,FindBugs的码。 思前想后,我们有2个计划:设置本地声纳(服务器)与具有日食

  1. 有在每个人的系统的本地声纳和整合,使用SonarQube插件蚀。
  2. 我们可以将checkstyles,Pmd,findbugs插件添加到eclipse中,并使用与声纳中相同的规则。

可能我知道的优点和各方案的利弊。

计划2是努力更少和经济,并且不需要在每个系统中运行Sonar服务器 但是计划2的性能可以像声纳一样多吗?

对它们做了一些研究之后,我发现个别Checkstyles插件使用ANTLR,PMD使用JAVACC和Findbugs工作在字节码上,而不是在源代码上工作,这意味着所有三个插件单独使用Java虚拟机进行处理并生成结果,Sonar也一样(在JVM上运行),我发现的另外一件事是,如果我们单独使用它们,规则可能会发生重叠。 所以我的观点是如果我们长期从事大事情,使用Sonar会更好。

+0

集中执行最低质量检查规则,为开发人员提供(并支持)工具,文档和基础设施,以交付最高质量的代码。 – vanOekel 2014-10-17 10:20:38

回答

0

越大你的团队的规模,更可能你将有本地配置的问题。我记得有一次我安装了一个新的softare,它只能用JDK 32位工作,所以我卸载了JDK 64位JDK 32位。之后,由于改变了JVM,我对一些内存空间问题进行了Sonar分析。

性能一如既往,配置和充电的问题。你想分析多少个应用程序/代码行,而你的服务器/数据库/ ..配置是什么。

问候。

2

好问题!答案取决于你愿意花多少努力。让我来描述两个选择。由于运行单独的SonarQube服务器有太多问题(一旦运行商业插件导致许可成本爆炸;管理开销过大;启动时间过长),两者都只包含单个中央SonarQube服务器

规则重叠发生在所有的情况下,所以你必须处理,无论什么。

最简单的

最简单的设置是每个人都通过SonarQube插件使用一个中央服务器SonarQube。您将而不是本地使用任何其他个人分析工具。

  • 工作量很小,因为您只管理中央服务器,所有开发人员都会自动获取所有内容。这特别有利于升级,因为只有SonarQube管理员需要做任何事情。
  • 本地分析与持续集成分析(通常为100%)非常高的一致性。因此,人们在SonarQube Web GUI中看到警告的可能性非常低,他们在IDE中看不到它们。
  • 您可以在本地使用SonarQube提供的特殊探测器。这只是一个小优点,因为它们大多是对Checkstyle,PMD和FindBugs检测器的重新实现。这可能是你依然存在的原因。
  • 表现很好。 SonarQube只能检查已更改的文件,因此速度非常快。此外,开发人员执行本地分析时不会将数据上传到服务器,因此您不会浪费时间做这些事情,也不会发送中央数据库垃圾邮件。 (Checkstyle的,FindBugs的和PMD仍将在本地运行“引擎盖下”,如果你选择他们的任何规则SonarQube。)

黄金标准

金本位一个中央SonarQube服务器是仅用于持续集成系统。开发人员将而不是使用SonarQube,但个别分析工具根据维护SonarQube质量配置文件的人员提供的中央配置进行配置。缺点是,这是更多的工作,因为你必须保持一个,但通常是四个配置(Checkstyle,PMD,FindBugs,SonarQube)。 (是的,在这种情况下,PermaLinks将无济于事。)开发人员必须时不时地检查SonarQube Web GUI,以确保没有任何方法逃脱其本地检查。

好吧,更多的工作,但是什么让它更好?

  • 你得到方式更多的功能,因为局部应用的规则可以使用每个单独的工具的全部功能。您不仅限于SonarQube支持的功能集。例如,在撰写本文时,SonarQube仅支持Checkstyle 5.6,而Checkstyle 5.8已经不支持。所以你会错过很多新的检查和错误修复。在本地机器上直接使用Checkstyle,您的代码将已经符合您未来的CI规则,一旦SonarQube也转移到Checkstyle 5.8,您就可以投入使用。
  • 更好的可用性,因为你可以使用Checkstyle custom messages。这样,您的开发人员就可以看到类似Member 'theField' must start with a lowercase 'm'的消息,而不是Identifier 'theField' did not match pattern '^m[a-zA-Z0-9]*$'。特别是对于复杂的正则表达式,这对您的质量控制系统的接受程度有很大的影响。
  • 您可以将插件用于尚未配备SonarQube插件的单个工具。再次检查!
  • 表现也很好。所有这三种工具都具有非常好的IDE集成,所以它们也可以快速运行并且只能在更改的文件上运行
+0

但最新版本的声纳(比如说4.4和4.5)没有上传/应用自定义checkstyles,pmds等选项......只有一个规定是只上传findbugs文件,他们在他们的网站上提到他们是不会支持用户配置文件(可定制) 请参考以下网址提到 1.www.sonarqube.org/already-158-checkstyle-and-pmd-rules- 弃用按sonarqube-java的规则/ 2.http://docs.codehaus.org/display/SONAR/Java+Plugin 怎么办?在内置配置文件中继续使用声呐,或者使用老版本的声纳或使用eclipse插件(checkstyles和pmds等) – 2014-10-20 10:52:49

+0

您必须在SonarQube中创建质量配置文件(http://docs.codehaus.org/display/SONAR/Quality+Profiles)。我不认为你可以上传一些东西。但这与您的问题中的选项或我的答案中的选项无关。 – 2014-10-20 14:04:05