2013-02-04 30 views
39

我一直在試圖找到一個能夠在獨立於Eclipse的CLI上運行的Java linter,我可以將其作爲git的提交鉤子或從我們的自動構建腳本調用。這樣的事情存在嗎?是否有簡單的CLI Java Linter?

理想情況下,它需要檢查未使用的導入和變量,遵循風格指南,異常使用正確等。雖然這些功能的某些子集會更好,我們現在擁有的東西 - 什麼都沒有!

+1

//,這不是對軟件推薦的要求嗎? –

回答

36
  • Findbugs找到現有的錯誤。很好!
  • PMD尋找模式,可能會導致錯誤(例如,未使用的變量)
  • Checkstyle強制執行編碼標準和慣例(如空白,Javadoc中)
  • Error Prone鉤右轉入您的應用程序的編譯步驟

所有這些工具都有一些重疊的規則。還有許多其他類似的工具,但這些工具是最受歡迎和支持的。

+0

你會說Findbugs和PMD做不同的事情嗎?我最後一次看到這個,我得出結論他們是相似的,我們只需要一個(並選擇PMD)。我們也運行Checkstyle,是的,發現即使PMD和Checkstyle重疊。 –

+0

@湯姆安德森 - 我會說他們肯定會做不同的事情,是的。它們都有價值(顯然也有重疊)。 – jtahlborn

+0

是的,目標很不一樣。 Findbugs試圖找到實際的錯誤,有時通過深入分析。 PMD只是尋找已知有時會導致錯誤的模式。就我個人而言,我使用FindBugs和Checkstyle,因爲它們有較少的重疊。 – mikeslattery

4

此外,檢查出Sonar,它結合了許多其他工具,並提供了一個很好的觀點。

來自Checkstyle,FindBugs,PMD,Clirr,fb-contrib的規則。


不知道究竟是如何將它添加到一個post-commit鉤子,但http://docs.codehaus.org/display/SONAR/Analyzing+with+Maven可能是一個很好的起點(特別是如果你使用maven)。

甚至可以考慮使用http://docs.codehaus.org/display/SONAR/Continuous+Integration列出的方法之一,因爲它看來,你可能會試圖尋找更好的工具爲您的整個團隊(「儘管這些功能的一些子集倒不如說什麼我們現在有 - 什麼都沒有!「

+0

+1問題提出後四年,SonarQube似乎更加活躍,現代和完整。它用於結合上面提到的工具,但現在它實現它們本地避免重疊https://blog.sonarsource.com/already-158-checkstyle-and-pmd-rules-deprecated-by-sonarqube-java-rules/ – user2518618

1

這就是我正在研究的內容:一個用於檢查Java代碼質量的工具CLI,它也有一個交互模態,可以運行單個查詢(檢查單個警告)或所有查詢在一起

工具處於早期階段,但我幾乎每天都在工作,它可用於她E:

https://github.com/ftomassetti/effectivejava

請讓我知道你怎麼看待它,並隨時提出問題。

+0

這個項目的最後一次提交是2年前。不知道這是否正在積極開發。 –

相關問題