問題タブ [pmd]
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.
findbugs - (Java) 静的コード分析ツールでのカスタム ルールの記述の容易さ
現在、複数のプロジェクトのソース コード (Java) を静的コード分析ツールで分析する必要があるグループで働いています。
しかし、ツールが提供する既存のルール セットに追加できるカスタム ルールを作成したいと考えています (ルールには、ソース コード内のテキスト/文字列に一致する正規表現がほとんど含まれます)。
特に、ツールの既存のルール リストと一緒に使用できる独自のカスタム ルールを簡単に記述/追加できるようにする必要があるという観点を維持します。
以下のリストの中で、どのツール (またはツールの組み合わせ) を使用すればよいか、誰でも提案できますか?
- PMD
- チェックスタイル
- バグを見つける
編集済み:指示してくれたIraに感謝します。Sonar と一緒に使用する静的コード分析ツールを探しています。質問が明確になったことを願っています。
java - PMD ルールセット ファイル
デフォルトのルールセット ファイルの場所、デフォルトのルールセット ファイルの名前、独自のルールを追加する方法を把握しようとしています。私はグーグルで検索しようとしましたが、それは私を混乱させるだけです. これまでのところ、pmd プラグインを eclipse plugins フォルダー内に配置し、設定で PMD を確認できます。
java - PMD / CPD:コメントを使用してコードのビットを無視する
コードの一部の重複チェックを無視するようにPMDに指示する方法はありますか?
たとえば、次のようなことができますか?
現在、Mavenを使用してこのようにPMDを設定していますが、何かが足りない場合を除いて、やりたいことを実行してほしいという議論はありません。
stringbuilder - StringBufferをStringBuilderに置き換える必要がある場合を検出するFindbugsまたはPMDルール
同期されているStringBufferをStringBuilderで安全に置き換えることができる場合に警告するルールがFindBugsまたはPMDにありますか?
たとえば、StringBuffer変数参照がメソッドから(別のスレッドに)エスケープされない場合、StringBuilderで安全に置き換えることができます。
java - IntelliJIDEAでPMDを使用する際の問題
PMDプラグインをIntelliJIDEにインストールしようとしていました。指示に従いましたが、pmdチェックを実行しようとすると、次の例外が発生します。「。」のように見えるものから。クラスローダーに対して間違ったファイル名を生成する/として解析されています。
パスの意味:設定は
何らかの理由で、まだC:/ Development / IDE / Utils / PMDPlugin / lib / pmd-4 / 2/5/jarを探しています
例外は次のとおりです。
2011年4月にビルドされたIntelliIDEA10.0.3ビルド#IC103.288を使用していますJDK1.6.0_21
何かアドバイスはありますか?ありがとう
eclipse-plugin - インストール済みの Eclipse プラグインをエクスポートする
インストール済みの Eclipse プラグインを適切な設定でエクスポートできるかどうかを知りたいです。
実際、私は pmd プラグイン用のフラグメント プロジェクトを開発し、pmd 設定を構成してインストール済みプラグインとリンクしました。そして今、それを新しい Eclipse プラグイン インスタンスとしてエクスポートしたいと考えています。
ご協力いただきありがとうございます ;)
チェン
android - Android maven2 プロジェクト用に構成された PMD-Plugin を使用した Hudson
現在、maven2-android プロジェクトで Hudson の PMD プラグインを使用しているときに問題が発生しています。私のPOM内の部分は次のようになります。
残念ながら、android-ruleset の場所が見つかりません。住所わかった人いますか?
java - JoshuaBlochのBuilderパターンとPMD警告
Joshua BlochのBuilderパターンを使用してクラスを作成しました。これは、このピザの例に似ています。
しかし、PMDは2つの警告を報告しました:
- (メソッドBuilder.build()を指す)コンストラクターのクラスの外部からのプライベートコンストラクターによるインスタンス化を避けます。コンストラクターのクラスの外部からプライベートコンストラクターを介してインスタンス化すると、多くの場合、アクセサーが生成されます。ファクトリメソッド、またはコンストラクタの非プライベート化により、この状況を解消できます。生成されたクラスファイルは実際にはインターフェイスです。これにより、アクセスクラスは、インターフェイスを補足パラメーターとして受け取る新しい隠しパッケージスコープコンストラクターを呼び出すことができます。これにより、プライベートコンストラクターが効果的にパッケージスコープを持つコンストラクターに変わり、識別が困難になります。
- クラスはインスタンス化できず、静的メソッドまたはフィールドを提供しません。プライベートコンストラクターがあり、静的メソッドまたはフィールドがないクラスは使用できません。
これらの警告を無視する必要がありますか?
別の質問:クラス内のプライベートフィールドPizza
とBuilder
が重複しています。プライベートフィールドの数が増えると、これは厄介になります。それを回避する方法はありますか?
grails - PMD with grails プロジェクト
PMD は grails プロジェクト、つまり .groovy ファイルで動作しますか??
私はSTSエディタを使用しています。
それが機能する場合、どのようなセットアップを行う必要がありますか?
わかる方いたら教えてください
前もって感謝します
java - Wicket と「コンストラクターがオーバーライド可能なメソッドを呼び出す」PMD 警告
コンストラクター コードのほとんどを に移動することで、この PMD 警告を回避してきましたonInitialize()
。しかし、問題 (設計上の欠陥?) を別の場所に移動しているだけなのでしょうか?
つまりonInitialize()
、PMD によって認識されない単なる代理コンストラクターですか?
コンストラクターでオーバーライド可能なメソッドを呼び出すときにポップアップするような問題がありますが、これは Wicket 自体がコンストラクターを呼び出すという事実に起因しているようです (正確なソース行を見つけることはできませんがonInitialize()
、オーバーライド可能なメソッドが最終的にadd()
コンストラクターを呼び出すときに呼び出されます)。
サンプルコードが役立つ場合は、喜んで提供します。
onInitialize
これで問題ないと思うかもしれませんが、呼び出しが発生すると思われる場所では発生しません。
add()
ページで呼び出す場合のメソッド フローは次のとおりです。
したがって、コンポーネントを に追加するとわかるようにWebPage
、onInitialize()
メソッドが起動されます。これは、 を作成する上記の正常なコードのインスタンスにつながるオーバーライド可能なメソッドNullPointerException
です。
これが発生する可能性があるという唯一の警告は、次の JavaDoc ですonInitialize()
。
注:この呼び出しのタイミングは正確ではありません。{@link Component#onBeforeRender()} の前に呼び出されるという契約があります。