【发布时间】:2010-05-27 19:45:47
【问题描述】:
在工作中,我们使用多种工具来捕获多种指标(主要是圈复杂度和 LCOM)。我们使用这些来获取警告标志并指导先发制人的重构工作。这对提高代码质量非常有益。
但是,该过程与构建过程无关。它是分开进行的。此外,我正在寻找可以成为源代码固有的东西(而不是在其上运行的外部进程。)
是否有人知道可以从编译器运行的一组注解和可配置的注解处理器,如果代码不符合阈值圈/LCOM 指标,它们会导致构建失败?
我想我可以从 maven/ant 运行 ckjm、checkstyle 和 pmd,但有些工作在源代码上,而另一些工作在字节码上。在编译开始之前有一个可以处理源代码的综合工具会很好。
另一件事是,如果有一组注释可以驱动这一点,那就太好了(允许在极端情况下不可避免地需要定制。)
@LCOM3(Threshold=1.5)
public class SomeDumbPojo {... buch of gets/sets...}
// by default would be measured against a strict LCOM3
public class ActualBizClass
{
@CYCLOMATIC_COMPLEXITY(Threshold=15)
public void someFatIrreducibleMethod(){...}
}
然后,当我们运行该工具时,默认情况下会应用严格的(和可配置的)度量阈值,但那些使用(希望记录和合法的)更宽松阈值注释的工件除外。对于一些不能/不应该减少的方法,宽松的圈复杂度是有意义的。对于没有行为的普通 POJO,LCOM 需要放宽......等等。
尽我所能寻找和谷歌搜索,我无法找到任何东西(希望是开源的)。但我不妨在这里问一下,以防万一有人知道这种情况。
谢谢。
【问题讨论】:
标签: java annotations metrics cyclomatic-complexity