私がこれまでに知っているコード検査は、通常、継続的統合フェーズ中に行われます。これによりコードの品質は確保できますが、コストがまだ少し高いと個人的には考えています。これは主に次の点に反映されています。
開発者が自分のブランチで開発を完了してからサーバーにプッシュするのは困難です。その後、継続的に統合してコードをチェックし、コード スタイルに一貫性がないことが判明した場合、このフィードバック プロセス全体に時間がかかりすぎます。
現在開発中の Java プロジェクトは、(checkstyle、pmd など) のようなコードをチェックできるようにしたいと考えています。これらのチェックは、コード ウェアハウスにプッシュした後に行うのではなく、ローカルで送信する前にパスする必要があります。期待される目標達成すべきことは次のとおりです:
提出前にコード検査に合格する必要があります。そうでない場合、提出は許可されません
IDE に依存せず、ツールのサポートを利用するのが最善です
コード検査ツールの構成ファイルはバージョン管理を行うのに最適です
現在考えられている解決策 (まだ試していません):
checkstyle と他のプラグインを Maven に統合する
git/hooks のスクリプトを使用して、検証のために Maven を呼び出します。失敗します。送信は許可されません
開発者はリリースできないブランチ (dev など) にのみプッシュできます。正式にリリースされたブランチ (master など) の開発者には直接プッシュする権利はありません。
checkstyle などのプラグインをサーバーにインストールします。チェックが成功すると、dev がマスターにマージされます。チェックが失敗すると、マージは許可されません。
正しく理解されましたね、これらのことを行うために git フックが使用されます
sonar qube を使用してチェックし、jenkins と連携して継続的インテグレーション中にチェックします。
開発者に後で修正を加える時間を与えるため、提出前に検査に合格する必要はありません。
個人的には、コードがコンパイルでき、単体テストと結合テストが通過できればリリースしてもよいと考えています。コード検査で見つかった問題は次のバージョンのイテレーションに組み込むことができ、開発チームのリーダーは開発者が変更を加えるのをただ見守るだけで済みます。