2013-11-24 89 views
10

我在「程序」文件夾中有大量個人,無關的Java程序,我真的很想爲每個程序自動計算技術債務評分。據我所知,SonarQube可以允許你用Sonar-Runner做這個(種類),但是我真的很想動態地做到這一點,所以我可以有一個腳本分析和編寫「程序」中所有程序的技術債務分數,文件夾放入csv。我可以動態計算技術債務嗎?

如果能爲我這樣做,我非常樂意並樂於嘗試任何其他類型的技術債務軟件(或質量)。我真的很感激任何意見,或者想知道這是否可能?

+0

他們都使用相同的項目結構嗎?也許他們都使用Maven及其相關的約定?如果沒有,幾乎不可能有一個工具來動態檢測源代碼文件夾,單元測試文件夾,要使用哪個Java編譯器版本等。 – NickDK

+0

+1對於一個非常有趣的問題。然而,我不知道自動化TD估算的誤差下限是否如此之高,以至於有意義的結果難以捉摸 –

回答

0

Eclipse Metrics插件可能會讓您接近您正在尋找的內容。它會通過報告不同類型的複雜性(耦合,圈複雜度,內聚力,方法長度等),爲您的項目提供健康檢查。

從他們的網頁:

這個Eclipse插件在構建週期計算你的代碼的各種指標,並警告你,通過問題來看,「範圍違規」各個指標的。這使您可以持續瞭解代碼庫的健康狀況。您也可以將指標導出爲HTML以供公開展示,或者導出爲CSV或XML格式以供進一步分析。該導出可以在Eclipse中執行或使用Ant任務執行。

http://eclipse-metrics.sourceforge.net/

4

可以呀,Sonar是一個代碼分析工具,並具有甚至可以估算工時或美元技術債務插件。真正簡單的設置和運行,你只需下載它,解壓並啓動(隨附一個內部數據庫,因此不需要額外的配置依賴)。然後,如果你使用Maven的時候,你添加到您的pom.xml:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>sonar-maven-plugin</artifactId> 
    <version>2.0</version> 
</plugin> 

並運行:然後

maven sonar:sonar 

聲納會告訴你各種有關您的代碼有用的信息,包括技術債務。

------更新1 ------

如果你有多個項目(假設他們是行家),你可以讓他們一個父項目的所有孩子和家長運行mvn sonar:sonar ,它會爲你分析所有的孩子。 Here is an example of multiple projects

0

這些答案都很棒,但不是我正在尋找的。我能夠創建自己的解決方法:

  1. 當我創建Java項目,我有一個Java類,自動將sonar-properties.properties文件寫入到每一個項目。

  2. 我然後啓動聲納服務器(通過命令提示符)

  3. 我寫的,然後通過尋找sonar-properties.properties文件的目錄演練腳本。如果找到一個,它會發射聲納運動員。

注意,屬性文件具有對應於該項目一期工程的關鍵(所以我試圖分析每個項目都有它自己的項目的關鍵) - 所以後來我可以簡單地去爲localhost和看鏈接爲我創建的每個屬性文件。

相關問題