2013-03-29 15 views
5

私はJava開発で作業しています。私は最近、メンバとメソッドの順序付け、命名規則、修飾子シーケンスのコーディング標準に準拠しなければならない状況に陥りました。私は、コンプライアンスのチェックを自動化する方法や、並べ替えを行うメカニズムを生成する方法について考えています。標準準拠のコーディングのためのJavaファイルを自動的にチェック

私たちはEclipseで開発していますが、その技術はオープンです。その方法の1つは、外部ビルダーツールを生成し、これをプロジェクトに追加することです。欠点は、レガシーコードで問題に遭遇する可能性のあるすべてのファイルに自動的に適用され、エラーカウントがもはや遵守の合理的な基準ではない程度まで爆発するということです。また、コードレビューをはるかに困難にしますが、これは望ましくありません。

もう1つの方法は、有益な機能だけを備えた何らかのパーサーです。 Jenkinsの内部でプロセスを実行することもできますが、これは確かに有効ですが、コードが既にレビューに合格したことを意味します。これは通常、コードの準拠チェックには少し遅れます。

このような機能をIDE、ソース管理システム(Mercurial)、またはJenkinsに統合する方法はありますか?これは他の場所でどのように施行されていますか?

+0

チームシティーはテスト済みました、いくつかのコード準拠チェックも行うことができます。 – Jayan

+4

[PMD](http://pmd.sourceforge.net/)と[CheckStyle](http://checkstyle.sourceforge.net/)から始め、他の「静的解析ツール」に移行してください。 – parsifal

+0

CheckStyleを見ると、ルール自体を自由に定義することはできません。チェックするルールのみ(Javaコーディング標準とは異なる修飾子シーケンスに従わなければなりません)。 – 0xCAFEBABE

答えて

3

ダッシュボードとして使用することができ、(プラグイン経由で)私は、自動的にそのような変更を行うことをお勧めしません。チェックスタイル/ pmdの遵守の大半が有効であっても、警告/エラーのいくつかを無視する必要があることは私には起こります。さらに、このような簡単な問題のプールはごくわずかです。ほとんどの通知はより複雑な操作を必要とし、おそらく人間の介入なしには実行できませんでした。

私はSonarインテグレーションを使用しています。それはPMD、CPD、CheckstyleFindbugsのような多くの外部チェッカーを含み、Cobertura(テストカバレッジ統計)のような他の有用なツールと統合することができます。ソナーのビルドをジェンキンスのビルドに結びつけ、主要な/重大な問題を回避しようとするのは些細なことですが、これは良いアプローチと考えられます。

開発環境では、Eclipseとfindbugsの統合を使用します。ソナーとの統合のポイントもありますが、コードをサーバーに送信するか、サーバーをローカルで実行する必要があります。個人的には好きではありません。しかし、Sonarのコードレビュー後にコードを数回研磨した後、あなた(および他のチームメンバー)がほとんどのルールに従うことに気づくでしょうし、毎日のチェックレポートで十分です。

+0

_ "[SpotBugs](https://spotbugs.github.io/)はFindBugsの精神的な後継者です" _ – howlger

1

解決策の1つは、JCSC/checkstyleまたはコマンドラインに適したツールを使用することです。これをビルドプロセスと統合します。個々の開発者は自分の支店でこれを実行します。

ほとんどのツール・ジェンキンスとうまく統合

1

@ Jayanの答えに加えて、JenkinsはCheckStyle pluginを持っており、各CheckStyleの実行結果が表示され、違反の数に応じてビルドステータスを設定できます。だからあなたのセットアップ手順は次のようになります。

あなたのコーディング標準に合わせて CheckStyle rulesを設定
  1. はそれを構築し、あなたのジェンキンスにステップを追加のCheckstyle
  2. はCheckstyleの結果を公開するポストビルドステップを追加実行します。
0

Jayanにはチェックスタイルが記載されています。これはコーディング基準をチェックするのに最適です。

私は自動コード書式設定のためにJalopy年前に覚えていますが、あなたのニーズにも合うかもしれません。

すべての正直なところ、私はコードを自動的に再フォーマットしません。 checkstyleなどのツールを使用して警告を発生させることは、一つのことです。開発者のソースコードを管理することはまったく別のことであり、ほとんどの人はそれをひどく侵害して不快に感じます。 また、コードチェッカーのバグは、最悪の場合、誤った警告を生成します。コード美化器の不具合は、何時間もの作業を損なう可能性があります。

0

あなたのカスタムルール

イースリー作成すること 有用であるCQLinqクエリを使用して、あなたのベストプラクティスを確認するために JArchitectを使用することができます

JArchitectは、オープンソースの貢献者のために無料です。うまくいけばコミットhttp://www.jarchitect.com/JArchitectForOSS.aspx

関連する問題