3

プロジェクトでチェックスタイルを段階的に実行することを計画しています。私のCIサーバーがインクリメンタルビルドを実行していることを示します。これは、変更されたファイルと依存関係の単体テストのみを実行しています。ただし、チェックスタイル、PMD、Findbugsについては、変更されたファイルだけでなく、プロジェクト全体で実行しています。

これらの静的分析ツールは、最初のビルドではプロジェクト全体で実行し、その後は、変更されたファイルのセットでのみ増分ビルドを実行する必要があります。そして、変更されたファイルの結果をマージして結果を完成させ、ツールの検証が重要かどうかを知ることができます。

上記の要件に利用できるantタスクはありますか?

4

2 に答える 2

0

CI システムが変更されたと見なすファイルのリストを作成できる場合 (そのようなリストをコンパイルに使用したため、できると思います)、少なくとも部分的に結果を達成できるはずです。

CheckStyle と PMD の場合、ant タスクは、解析を実行するファイルを提供するファイルセットを受け取ります。変更されたファイルのみを提供します。

少なくともドキュメンテーションによると、FindBugs はそれを行うことができません。作業を行うためにチェック対象以外のファイルを読み取る FindBugs 検出器が多数あるため、これは理にかなっています。したがって、FindBugs 分析では、分析に使用できる他のファイルに応じて、同じファイルに対して異なる結果が得られる可能性があります。

最終的に統合レポートは得られません。代わりに、ツールからのレポートには、実際にチェックされたファイルに関する情報のみが含まれます。ビルドが失敗するかどうかを判断するには、おそらくこれで十分です。

[これをより大規模に行いたい場合、ルールの遵守状況や技術的負債などを追跡する場合は、無料のSonarQubeツールをお勧めします。SonarQube は、CI システムとも統合されます。ただし、増分実行は行いません。更新: SonarQube バージョン 4.0 以降、増分分析が可能になりました。ここの「増分分析」を参照してください。]

于 2014-01-28T20:49:01.440 に答える
0

問題を解決するための簡単なオプションがあるかどうかはわかりません。構成で指定されたフル パス (ソース パス/バイナリ パスなど) に対してツールを実行する代わりに、ツールが変更されたファイルのみを動的に識別する方法はありません。以前の結果を保持したいので、これは少し複雑です。

最初に、インクリメンタル ビルドの実行時に変更されたファイルのリストを取得する方法があるかどうかを確認する必要があります。それが可能であれば、変更されたファイルのみを一時ファイルにコピーするように ant ターゲットを変更できます。位置を確認し、それをツールに向けます。

次に、以前のレポートとマージするには、まず、上記の ant-target を実行する前に、既存のレポートをバックアップする必要があります。次に、xsl を記述して、既存のレポートの情報を新しいレポートに含まれる情報に置き換えます。ant を使用して xsl を実行し、別のレポートを作成します。したがって、そのレポートには必要な結果が含まれます。

于 2012-12-24T04:07:43.520 に答える