単純なCLIJavaリンターはありますか?[閉まっている]


88

gitのコミットフックとして、または自動ビルドスクリプトから呼び出すことができるEclipseとは別のCLIで実行できるJavaリンターを見つけようとしています。そのようなものは存在しますか?

理想的には、未使用のインポートと変数、スタイルガイドラインに従っていること、例外が適切に使用されていることなどを確認する必要があります。


2
//、これはソフトウェア推奨のリクエストではありませんか?
Nathan Basanese 2016年

3
ここで質問するのかメタで質問するのかわかりませんが、このような推奨事項を尋ねる質問の何が問題になっていますか?確かに、この質問に対する単一の客観的な答えはありませんが、多くの技術的な質問にも当てはまります。この質問は、「私はリンターを持っておらず、どのツールが利用可能で、現在、広く使用されているのかわかりません」と言い換えることができます。それは役に立ちますか?StackOverflowで、他のどこよりも、キュレートされ、ランク付けされ、日付が記録されたQ / Aを見つけたいと思います。ここにいなければ、この種の質問を持つ人々はどこに行くべきですか?
カイルクルル

回答:


81
  • 既存のバグを見つけるためのSpotBugs(以前のFindbugs)。とても良い!
  • バグにつながる可能性のあるパターン(未使用の変数など)を見つけるためのPMD
  • コーディング標準と規則を適用するためのCheckstyle(空白、Javadocなど)
  • エラーが発生しやすいことは、アプリケーションのコンパイルステップに直接フックします

これらすべてのツールには、いくつかの重複するルールがあります。他にも多くの同様のツールがありますが、これらは最も人気があり、サポートされています。


FindbugsとPMDは違うことをしていると思いますか?前回これを調べたとき、必要なのは1つだけ(そしてPMDを選択)であるほど類似していると結論付けました。Checkstyleも実行しましたが、PMDとCheckstyleでさえ重複していることがわかりました。
トムアンダーソン

@ TomAnderson-確かに彼らは違うことをしていると思います。それらの両方に価値があります(明らかに重複もあります)。
jtahlborn 2013

はい、非常に異なる目標です。Findbugsは、時には詳細な分析を行うことによって、実際のバグを見つけようとします。PMDは、バグにつながることがあることがわかっているパターンを探すだけです。個人的には、重複が少ないのでFindBugsとCheckstyleを使用しています。
mikeslattery 2013

pmdには、pmdとcpdの2種類のチェックがあることに言及することをお勧めします。
jtahlborn 2013

4
FindbugsはSpotBugsGitHub上)になりました
Matruskan 2018年

12

また、他の多くのツールを組み合わせて、それにも素晴らしいビューを提供するSonarをチェックしてください。

Checkstyle、FindBugs、PMD、Clirr、fb-contribのルール。


コミット後のフックに追加する方法は正確にはわかりませんが、http://docs.codehaus.org/display/SONAR/Analyzing+with+Mavenが出発点として適している場合があります(特にMavenを使用している場合)。

チーム全体のためのより良いツールを探しているように思われるので、http://docs.codehaus.org/display/SONAR/Continuous+Integrationにリストされているアプローチの1つを使用することを検討することもできます(これらの機能はどのようなもの良いでしょう私たちが今持っていない- !何を」


2
+1質問が行われてから4年後、SonarQubeはよりアクティブで、モダンで、完全なようです。以前は上記のツールを組み合わせていましたが、現在は重複を避けてネイティブに実装していますblog.sonarsource.com/…– user25186 1818
1

-1

これはまさに私が取り組んでいることです。Javaコードの品質をチェックするために使用するCLIに適したツールです。インタラクティブなモダリティもあります。単一のクエリ(単一の警告をチェックするため)またはすべてのクエリを一緒に実行できます。

ツールは初期段階ですが、私はほぼ毎日取り組んでいます。ここで入手できます:

https://github.com/ftomassetti/effectivejava

ご意見をお聞かせください。お気軽にご質問ください。


3
このプロジェクトの最後のコミットは2年前でした。これがもう活発に開発されているかどうかはわかりません。
ダニエルイーグル

いいえそうではありません。しかし、それから私はJavaParserに取り組み始めました。そのプロジェクトは、その上に構築できるCLIを提供しません。
フェデリコトマセッティ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.