当前位置: 首页 > 面试题库 >

Checkstyle和Findbugs仅在Jenkins(和/或Hudson)上查找更改的文件

顾鸣
2023-03-14
问题内容

我们使用许多遗留代码,并考虑为新代码引入一些指标。是否可以让Findbugs和Checkstyle仅在更改的文件而不是整个项目上运行?

确保只签入质量最低的文件是很好的,但是(尚未)不检查和评估代码库本身,以免使成千上万的问题引起人们的困惑。


问题答案:

从理论上讲,这是可能的。在给定开始日期之后,您将使用Shell脚本来解析SVN(或任何SCM)更改日志,从这些更改集中识别.java文件,并从中建立两种模式

  • 该FindBugs的Maven插件需要一个逗号分隔的类(或包)名称的参数列表onlyAnalyze,所以你必须以文件名转换为完全限定类名(这会变得棘手,当你在处理内部类)
  • 在Maven的Checkstyle的插件更是雪上加霜,预计其配置文件packageNamesLocation参数。不幸的是,只允许使用包,不允许单独的文件。因此,您必须将文件名转换为包。

在以上示例中,我假设您正在使用maven。我很确定蚂蚁可以完成类似的事情,但我不知道。

我本人可能会使用Groovy脚本而不是Shell脚本来实现上述结果。



 类似资料:
  • 我使用的是sonarqube community Version6.7.2,我记得,SonarJava插件的目标是用squid规则取代(至少大部分是)Findbugs和PMD规则。当有一个合适的squid规则替换时,这些提供者提供了一个关于规则的信息,但现在我无法找到它,例如,来自findbugs的一些规则与我从squid中知道的其他规则非常相似。 Sonarqube建议只使用squid规则?这些

  • 我需要在Eclipse中为一个开发项目使用PMD、Findbugs和Checkstyle。Java6足以使用这些工具吗?或者我需要java 7?

  • 我们有大量遗留代码的大型Java项目。现在我们有了代码约定和Checkstyle规则来检查它。 我们希望配置Jenkins作业,它在每次提交SVN之后运行,以检查修改/添加的行是否违反了我们的Checkstyle规则。 由于遗留代码,检查整个项目不是一个选项。我们也不能只是重新格式化所有的代码,因为这样就很难确定是谁更改了某一行以及为什么。 我们考虑的方法是--在以前的和当前的Checkstyle

  • 3)什么是最佳组合规则集。 我们使用的是Sonarquber5.6.3。 最新的checkstyle需要升级到5.6.4,目前只关注PMD、Findbugs和Sonarway插件。 提前致谢

  • 问题内容: 我已经设置了Jenkins,但是我想找出在当前版本和先前版本之间添加/更改了哪些文件。我想根据是否更改了源树的某些部分来运行一些长期运行的测试。 尽管有人建议使用SVN提交后钩子,但在Internet上搜寻时,我在Hudson / Jenkins中找不到任何提及此功能的地方。也许很简单,每个人(我除外)都知道该怎么做! 这可能吗? 问题答案: 如果您要轮询更改并使用SVN更新,CI服务

  • 我如何设置使用pmd和checkstyle结果仅作为建议,并在构建服务器上禁用它们?那么这样做会不会是一种不好的做法呢? 测试中的类需要用mock对象填充其字段,这些对象不会在测试中的任何地方使用,但需要用@mock声明和注释,以使测试中的类正确工作。添加@SuppressWarnings(“pmd.unusedPrivateField”)。 在测试类中,我将有方法从一长串参数创建对象,例如:cr