2014-10-16 23 views
2

我們正在開發Web應用程序作爲一個團隊,並決定是符合聲納規則在我國持續集成服務器在提交之前的所有插件checkstyles,PMD,FindBugs的碼。 思前想後,我們有2個計劃:設置本地聲納(服務器)與具有日食

  1. 有在每個人的系統的本地聲納和整合,使用SonarQube插件蝕。
  2. 我們可以將checkstyles,Pmd,findbugs插件添加到eclipse中,並使用與聲納中相同的規則。

可能我知道的優點和各方案的利弊。

計劃2是努力更少和經濟,並且不需要在每個系統中運行Sonar服務器 但是計劃2的性能可以像聲納一樣多嗎?

對它們做了一些研究之後,我發現個別Checkstyles插件使用ANTLR,PMD使用JAVACC和Findbugs工作在字節碼上,而不是在源代碼上工作,這意味着所有三個插件單獨使用Java虛擬機進行處理並生成結果,Sonar也一樣(在JVM上運行),我發現的另外一件事是,如果我們單獨使用它們,規則可能會發生重疊。 所以我的觀點是如果我們長期從事大事情,使用Sonar會更好。

+0

集中執行最低質量檢查規則,爲開發人員提供(並支持)工具,文檔和基礎設施,以交付最高質量的代碼。 – vanOekel 2014-10-17 10:20:38

回答

0

越大你的團隊的規模,更可能你將有本地配置的問題。我記得有一次我安裝了一個新的softare,它只能用JDK 32位工作,所以我卸載了JDK 64位JDK 32位。之後,由於改變了JVM,我對一些內存空間問題進行了Sonar分析。

性能一如既往,配置和充電的問題。你想分析多少個應用程序/代碼行,而你的服務器/數據庫/ ..配置是什麼。

問候。

2

好問題!答案取決於你願意花多少努力。讓我來描述兩個選擇。由於運行單獨的SonarQube服務器有太多問題(一旦運行商業插件導致許可成本爆炸;管理開銷過大;啓動時間過長),兩者都只包含單箇中央SonarQube服務器

規則重疊發生在所有的情況下,所以你必須處理,無論什麼。

最簡單的

最簡單的設置是每個人都通過SonarQube插件使用一箇中央服務器SonarQube。您將而不是本地使用任何其他個人分析工具。

  • 工作量很小,因爲您只管理中央服務器,所有開發人員都會自動獲取所有內容。這特別有利於升級,因爲只有SonarQube管理員需要做任何事情。
  • 本地分析與持續集成分析(通常爲100%)非常高的一致性。因此,人們在SonarQube Web GUI中看到警告的可能性非常低,他們在IDE中看不到它們。
  • 您可以在本地使用SonarQube提供的特殊探測器。這只是一個小優點,因爲它們大多是對Checkstyle,PMD和FindBugs檢測器的重新實現。這可能是你依然存在的原因。
  • 表現很好。 SonarQube只能檢查已更改的文件,因此速度非常快。此外,開發人員執行本地分析時不會將數據上傳到服務器,因此您不會浪費時間做這些事情,也不會發送中央數據庫垃圾郵件。 (Checkstyle的,FindBugs的和PMD仍將在本地運行「引擎蓋下」,如果你選擇他們的任何規則SonarQube。)

黃金標準

金本位一箇中央SonarQube服務器是僅用於持續集成系統。開發人員將而不是使用SonarQube,但個別分析工具根據維護SonarQube質量配置文件的人員提供的中央配置進行配置。缺點是,這是更多的工作,因爲你必須保持一個,但通常是四個配置(Checkstyle,PMD,FindBugs,SonarQube)。 (是的,在這種情況下,PermaLinks將無濟於事。)開發人員必須時不時地檢查SonarQube Web GUI,以確保沒有任何方法逃脫其本地檢查。

好吧,更多的工作,但是什麼讓它更好?

  • 你得到方式更多的功能,因爲局部應用的規則可以使用每個單獨的工具的全部功能。您不僅限於SonarQube支持的功能集。例如,在撰寫本文時,SonarQube僅支持Checkstyle 5.6,而Checkstyle 5.8已經不支持。所以你會錯過很多新的檢查和錯誤修復。在本地機器上直接使用Checkstyle,您的代碼將已經符合您未來的CI規則,一旦SonarQube也轉移到Checkstyle 5.8,您就可以投入使用。
  • 更好的可用性,因爲你可以使用Checkstyle custom messages。這樣,您的開發人員就可以看到類似Member 'theField' must start with a lowercase 'm'的消息,而不是Identifier 'theField' did not match pattern '^m[a-zA-Z0-9]*$'。特別是對於複雜的正則表達式,這對您的質量控制系統的接受程度有很大的影響。
  • 您可以將插件用於尚未配備SonarQube插件的單個工具。再次檢查!
  • 表現也很好。所有這三種工具都具有非常好的IDE集成,所以它們也可以快速運行並且只能在更改的文件上運行
+0

但最新版本的聲納(比如說4.4和4.5)沒有上傳/應用自定義checkstyles,pmds等選項......只有一個規定是隻上傳findbugs文件,他們在他們的網站上提到他們是不會支持用戶配置文件(可定製) 請參考以下網址提到 1.www.sonarqube.org/already-158-checkstyle-and-pmd-rules- 棄用按sonarqube-java的規則/ 2.http://docs.codehaus.org/display/SONAR/Java+Plugin 怎麼辦?在內置配置文件中繼續使用聲吶,或者使用老版本的聲納或使用eclipse插件(checkstyles和pmds等) – 2014-10-20 10:52:49

+0

您必須在SonarQube中創建質量配置文件(http://docs.codehaus.org/display/SONAR/Quality+Profiles)。我不認爲你可以上傳一些東西。但這與您的問題中的選項或我的答案中的選項無關。 – 2014-10-20 14:04:05