首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在eclipse中设置本地Sonar (服务器)和具有所有插件检查样式、pmd、findbug的vs

在eclipse中设置本地Sonar (服务器)和具有所有插件检查样式、pmd、findbug的vs
EN

Stack Overflow用户
提问于 2014-10-16 11:54:01
回答 2查看 2.6K关注 0票数 2

我们正致力于作为一个团队开发web应用程序,并决定在提交代码之前遵守持续集成服务器中的声纳规则。经过思考,我们有了两个计划:

  1. 在每个系统中都有本地声纳,并使用SonarQube插件将其集成到eclipse中。
  2. 我们可以添加检查样式,Pmd,findbug插件到eclipse,并使用与声纳相同的规则。

我可以知道每个计划的利弊吗?

计划2是努力少,经济,不需要运行声纳服务器在每个系统,但计划2可以执行与声纳一样多吗?

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

EN

回答 2

Stack Overflow用户

发布于 2014-10-17 20:32:27

问得好!答案取决于你愿意付出多少努力。让我来描述两种选择。这两台服务器都只包含一个中央SonarQube服务器,因为运行单个SonarQube服务器存在太多问题(一旦运行商业插件,就会增加许可证成本;管理开销太大;启动时间太长)。

规则重叠在所有情况下都会发生,因此无论发生什么情况,您都必须处理这些问题。

最简单的

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

  • 工作量很小,因为您只管理中央服务器,所有开发人员都会自动从那里获得所有信息。这对升级特别有好处,因为只有SonarQube管理员需要做任何事情。
  • 局部分析与连续积分分析的高度一致(通常为100%)。因此,人们在SonarQube web中看到警告的可能性很低,而他们在IDE中没有看到这些警告。
  • 您可以在本地使用SonarQube提供的特殊检测器。这只是一个小小的优势,因为它们主要是Checkstyle、PMD和FindBugs检测器的重新实现。这也许还是你的理由。
  • 表现很好。SonarQube只能检查修改过的文件,所以速度相当快。此外,开发人员执行不将数据上传到服务器的本地分析,因此您不会浪费时间,也不会对中央数据库进行垃圾邮件。(如果您在FindBugs中选择它们的任何规则,则Checkstyle、PMD和PMD仍将在本地“在引擎盖下”运行。)

金标

黄金标准是一个中央SonarQube服务器,仅用于连续集成系统。开发人员不会使用SonarQube,而是根据维护SonarQube质量概要的人员提供的中心配置来配置单个分析工具。缺点是,这需要做更多的工作,因为您必须维护四个配置,而不是一个配置(Checkstyle,PMD,FindBugs,SonarQube)。(没错,在这种情况下,PermaLinks是帮不上忙的。)开发人员必须不时地检查SonarQube Web,以确保没有任何东西逃脱他们的本地检查。

好的,更多的工作,但是是什么使它更好呢?

  • 您可以获得更多的特性,因为在本地应用的规则可以使用每个单独工具的完整功能集。您不仅限于SonarQube支持的特性集。例如,在撰写本文时,SonarQube只支持Checkstyle 5.6,而Checkstyle 5.8已经发布。所以你会错过很多新的检查和错误修复。直接在本地机器上使用Checkstyle,您的代码将已经符合您未来的CI规则,一旦SonarQube也移到Checkstyle 5.8,您就可以设置这些规则了。
  • 更好的可用性,因为您可以使用Check样式的自定义消息。这样,您的开发人员就可以看到类似于Member 'theField' must start with a lowercase 'm'而不是Identifier 'theField' did not match pattern '^m[a-zA-Z0-9]*$'的消息。特别是对于复杂的正则表达式,这对您的质量控制系统的接受产生了巨大的影响。
  • 您可以将插件用于尚未使用SonarQube插件的单个工具。又是支票!
  • 表现也很好。这三个工具都有非常好的IDE集成,因此它们也运行得很快,并且只在修改过的文件上运行。
票数 3
EN

Stack Overflow用户

发布于 2014-10-17 10:27:27

团队规模越大,本地配置就越有可能出现问题。我记得有一次我安装了一个新的软件,它只与JDK 32位一起工作,所以我将JDK 64位卸载为JDK 32位。在那之后,我进行了一些Sonar分析,因为JVM改变了内存空间问题。

与往常一样,性能是一个配置和收费的问题。您想要分析的应用程序/代码行数与服务器/数据库/.配置。

致以问候。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26403714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档