問題タブ [checkstyle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1976 参照

xml - Checkstyle の PackageHtml-rule は package-info.java を無視します

私は checkstyle を使ってコードを分析しています。有用なルールは、パッケージに Javadoc の説明が含まれているかどうかをチェックする PackageHtml です。ただし、新しい Java バージョンでは、package.html の代わりに package-info.java を使用することをお勧めします。問題は、checkstyle が package-info.java を無視し、ルール違反を報告することです。package-documentation をチェックし、package.htmlとpackage-info.javaを受け入れるように checkstyle を構成するにはどうすればよいですか?

0 投票する
17 に答える
68054 参照

java - Checkstyle 対 PMD

Java 製品のビルド システムに静的解析ツールを導入しています。Maven2 を使用しているため、CheckstylePMDの統合は無料です。ただし、基本的なスタイル ルールを適用するという点では、これら 2 つのツールの機能には大きな重複があるようです。

これらの両方を使用する利点はありますか?1 つが機能する場合、2 つのツールを維持したくありません。どちらかを選択する場合、どれを使用する必要がありますか?また、その理由は何ですか?

FindBugs の使用も計画しています。他に検討すべき静的解析ツールはありますか?

更新: PMD が CheckStyle よりも優先されるというコンセンサスがあるようです。両方を使用する確固たる理由はわかりません。また、2 セットのルール ファイルを維持したくないので、おそらく PMD のみを対象とします。また、FindBugs を導入し、最終的には Macker を導入してアーキテクチャ ルールを適用する予定です。

0 投票する
6 に答える
14914 参照

java - checkstyle + 抑制フィルター

チェックスタイルの抑制フィルターを設定しています (たとえば、単体テスト コードのマジック ナンバーを無視します)。

抑制 xml ファイルは、checkstyle xml ファイルと同じフォルダーにあります。ただし、このファイルの実際の場所はさまざまです。私の Windows 開発ボックスでは、Linux CI サーバーでは d:\dev\shared\checkstyle\config にあり、別の開発者ボックスでは /root/repo/shared/checkstyle/config にあります。どこにでもある可能性があります(svnリポジトリをチェックアウトします)。

唯一の「一貫性」は、抑制ファイルが常に checkstyle xml ファイルと同じフォルダーにあることです。このファイルが常に確実に取得されるようにする方法がわかりません。また、checkstyle xml ファイル内での埋め込み抑制を checkstyle がサポートしていない理由もわかりません。

助けはありますか?

0 投票する
2 に答える
1737 参照

java - CheckStyle モジュール「NeedBraces」はネストされた if/else ブロックで動作しますか?

CheckStyleを使用してスタイル標準を適用しています。含めることを選択したスタイル ルールの 1 つは、NeedBracesモジュールでした。

NeedBracesは、すべてのブロック型ステートメント (ifelsefor) に左中括弧と右中括弧が必要であることを指定します。ただし、私が知る限り、完全に正しく機能しているわけではありません。

この例では、CheckStyle エラーが発生します。

else ケースには中括弧がないためです。ただし、次の例では CheckStyle エラーをトリガーできません。

これは、else の場合に中かっこがないために失敗するはずでしたが、checkstyle はそれを通過させます。ドキュメントを再確認した後、これが正しく機能しない理由が見つかりません。

それで... CheckStyleモジュール「NeedBraces」はネストされたif/elseブロックで動作しますか? 何か案は?


この質問に対する答えは、別の質問です。上記の望ましくないコードに違反としてフラグを立てる規則はありますか?

0 投票する
1 に答える
2204 参照

java - if/else はしごの同じ行に if else キーワードを強制する CheckStyle ルールはありますか?

この質問に基づいて、CheckStyle のデフォルト テンプレートでは、if else はしごでifandelseを改行で区切ることができるようです。

つまり、このコードに違反としてフラグを立ててほしい:

これを防ぐための CheckStyle ルールはありますか? ドキュメントを見てみると、1つも表示されません。必要がなければ、一般的な正規表現ルールを使用しないことをお勧めします。

また、GenericIllegalRegexpモジュールを使用すると、複数行の正規表現が機能しないようです。これに対する救済策はありますか?

0 投票する
4 に答える
5030 参照

maven-2 - Maven 2 Checkstyle configLocation

チェックスタイルのルールを保存したxmlファイルを含むjarファイルをmaven依存関係として持つプロジェクトがあります。この構成を使用するだけで問題ないと思いました。

私の理解では、ファイルはクラスパスで検索する必要があり、私のjarファイルはMavenの依存関係であるため、見つける必要がありますが、リソースが見つからないという例外が発生します。

助言がありますか?

0 投票する
7 に答える
1270 参照

java - パラメータとして渡されたオブジェクトの値の変化を検出します

私は今、このようなコードで作業しています

パラメータとして渡されたオブジェクトを変更するのは悪い習慣だと思います。そのようなコードを検出するツールはありますか?findbugs、pmd、checkstyleを調べましたが、これに対するチェックは見つかりませんでした。

PS悪い例でごめんなさい。

0 投票する
2 に答える
5208 参照

java - 自動Eclipseビルド中にAntでcheckstyleを使用する

過去数か月間、私はアプリケーションのEclipse自動PDEビルドプロセスを徐々に改善してきました。

私が最初に試したのは、テストケースの自動化でした。次のステップは、 LinuxWindowsの両方で、インストーラーを自動的に生成するためのスクリプトコードでした。

次に、静的コード分析レポートをプロセスに追加します。私の会社では、この目的のためにCheckstyleを使用しています。

ビルドプロセスからレポートを生成できるように、Checkstyleプラグインを自動化できることを理解しています。チェックスタイルの結果を、すでに生成されている単体テストレポートと一緒に配布すると便利です。

比較的痛みのない方法でこれを達成する方法の良い例を誰かが持っていますか?

0 投票する
2 に答える
10183 参照

ant - 抑制を定義する方法-antとeclipseの両方で機能するcheckstyleの定義

プロジェクトのcheckstyleで使用し、checkstyle-configurationでSuppressionFilterを定義しました。Apache antを使用して、継続的インテグレーションを介して自動ビルドを作成します。

私の問題は次の状況から来ています:プロジェクトベースのirに多くのファイルを入力したくないので、checkstyle.xmlとsuppressions.xmlは両方ともconfという名前のサブディレクトリにあります(ビルドの構成用)。現在、AntとEclipseは、suppressions.xmlを見つけるために異なる動作をします。

Antは、checkstyleの基本構成でcheckstyle.xmlを検索するant-taskを宣言した後、suppressions.xmlを検索するためのbasedirとしてproject-basedirを使用します。このcheckstyle.xmlには、次のものが含まれています。

このようにして、ビルドのベースはproject-directoryであるため、ant-buildはsuppressions.xmlを検出します。

Eclipseにcheckstyle-pluginを使用すると、問題が発生します。checkstyle.xmlが持つパス(conf)で始まるsuppressions.xmlを探します。Eclipseの場合、宣言は次のように機能する必要がありました。

編集:それが機能しない場合でも、Eclipseには常に絶対パスが必要なようです。

EclipseとAntの両方が同じcheckstyle-configurationで動作できる方法を知りたいです。誰かがこの問題の解決策を知っていますか?すべての開発者とCIサーバーはプロジェクトディレクトリに対して異なるパスを持っているため、絶対パスは解決策ではありません。