在工作中,我們使用幾個工具來捕獲幾個度量(主要是圈複雜度和LCOM)。我們使用它們來獲取警告標誌並指導先發制人的重構工作。在提高代碼質量方面非常有益。實施圈複雜度和LCOM約束的註解
但是,這個過程並不依賴於構建過程。它是分開進行的。此外,我正在尋找可以固有的源代碼(而不是運行在其上的外部進程)。
是否有人知道一組註釋和可配置的註釋處理器從編譯器運行,如果代碼不符合閾值cyclomatic/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無w/o行爲,LCOM需要放鬆......等等等等。
尋找和谷歌搜索我可能,我一直沒能找到任何東西(希望開源)。但我不妨在這裏問一下,以防萬一有人知道此類事情。
謝謝。
我的不好,通過「編譯」我的意思是javac開始吐出字節碼的步驟。我們在工作中使用專有工具來掃描Java源代碼並從中派生指標(不需要編譯),但該工具不適合使其成爲構建過程的一部分。至於使用註釋來添加給定閾值的想法,這或多或少是過程的產物。如果一個類有一個圓形複雜度超過10的方法,構建會被中止,除了有文檔記錄的案例被呈現,審查和接受(並且因此註釋以便構建繼續進行。) – 2010-05-28 02:52:11