hudson - Checkstyle 和 Findbugs 仅在 Jenkins(和/或 Hudson)上更改文件

标签 hudson jenkins findbugs checkstyle

我们处理了大量遗留代码,并考虑为新代码引入一些指标。是否可以让 Findbugs 和 Checkstyle 仅在更改的文件上运行而不是在完整的项目上运行?

最好确保只 checkin 质量最低的文件,但代码库本身(尚未)被触及和评估,以免被成千上万的问题混淆。

最佳答案

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

  • Findbugs Maven Plugin期望以逗号分隔的类列表(或
    包)参数名称 onlyAnalyze ,所以你会有
    将文件名转换为完全限定的类名(这将得到
    处理内部类时很棘手)
  • Maven Checkstyle Plugin更糟糕的是,它预计
    其配置文件 packageNamesLocation 范围。
    不幸的是,只允许包,而不是单个文件。所以
    您必须将文件名转换为包。

  • 在上面的示例中,我假设您使用的是 maven。我很确定用 ant 可以做类似的事情,但我不知道。

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

    关于hudson - Checkstyle 和 Findbugs 仅在 Jenkins(和/或 Hudson)上更改文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7243190/

    相关文章:

    maven - 使用 Hudson 和 Maven 回滚持续部署

    svn - Hudson 无法访问 Subversion(svn :connection refused by server)

    testing - 使用 Hudson(现在称为 Jenkins)从 JUnit XML 格式文件生成 Selenium 报告

    php - 运行 composer install 时处理 "the requested PHP extension pdo_sqlite is missing from your system. "

    Jenkins HTML 发布器插件 : No external links with Jenkins 1. 643

    java - getter 和 setter findbugs 可能会暴露内部表示

    concurrency - 如何在并行执行中启动具有不同参数的相同作业?

    github - 如何为内部服务器的 Jenkins 配置 GitHub Webhook?

    java - Findbugs-NP - NP_NULL_ON_SOME_PATH

    java - Findbugs NP_ARGUMENT_MIGHT_BE_NULL 未按预期触发