問題タブ [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.
java - PMDとFindBugsの違いは何ですか?
PMDとCheckStyleを比較する質問がありました。しかし、PMDとFindBugsの違い/類似点についての良い内訳を見つけることができません。主な違いは、PMDがソースコードで機能するのに対し、FindBugsはコンパイルされたバイトコードファイルで機能することだと思います。しかし、機能の観点から、それはどちらかまたは両方の選択である必要がありますか、それとも互いに補完し合うのでしょうか?
java - 複数のルールセットを使用するための Eclipse プラグイン PMD の構成
PMD はとても便利なツールだと思います。そこで、PMD Eclipse プラグインをインストールしました。
PMD を使用すると、複数のルールセット ファイルを定義できます。私が複数のルールセットファイルを持っている理由の 1 つは、すべてではなく名前付けルールと言ういくつかのルールからいくつかのクラスを除外する必要があるためです。これらのルールを別のルールセット ファイルで定義し、要素を使用することで、これを達成しました。ant ビルドに関する限り、これで問題ありません。ただし、PMD eclipse プラグインに同じルールセット ファイルを使用して、ant または eclipse を使用して PMD を実行しても同じ結果が得られるようにしたいと考えています。
PMD Eclipse プラグイン用に複数のルールセット ファイルを選択するオプションが表示されません。複数のルールセット ファイルまたはその他の代替手段を選択する方法はありますか?
助けてください。
ありがとう
java - 次のPMD違反を修正する方法
PMDを使用してコードを分析していますが、修正方法がわからない優先度の高い警告がいくつか生成されます。
1)Avoid if(x!=y)..; else...;
しかし、このロジックが必要な場合はどうすればよいですか?つまり、私はチェックする必要がありx!=y
ますか?どうすればリファクタリングできますか?
2)Use explicit scoping instead of the default package private level.
しかし、クラスは実際にはパッケージ内でのみ使用されます。どのアクセス修飾子を使用する必要がありますか?
3)Parameter is not assigned and could be declared final.
PMDがこの警告で指摘したすべての場所にfinalキーワードを追加する必要がありますか?
clearcase - 静的解析ツールの使用 - Clear Case/Quest を使用
私たちはソフトウェア開発プロセスを定義する過程にあり、このトピックについてグループからフィードバックを得たいと考えていました。
私たちのチームは米国、カナダ、インドに分散しており、すべてのチームがそれぞれのコードに適用する簡単な標準ルールを導入したいと考えています。
クリアケース/クエストとRADを活用
私はPMD、CPP、checkstyle、およびFindBugsを手始めに見てきました。
私の考えでは、これらを ANT に入れ、開発者に手動で実行させることです。これを行うには、各開発者がこれを行うことをある程度信頼する必要があることを理解しています。
もう 1 つの考えは、いくつかのビルダーを IDE に追加して、ルールのサブセットを実行し (ビルド プロセスを軽量に保つ)、コードをチェックインするときに別のセット (重い) を追加することです。
他のいくつかの理想は、Cruse Control のようなものを利用して、Clear Case/Quest がアイドル状態のときにユニット テストとともにこれらの静的分析ツールを実行するように設定することです。
他の人がこれを行ったかどうか、それが成功したかどうか、または学んだ教訓を提供できるかどうか疑問に思います。
java - テキストファイルの内容を1行ずつ繰り返す-ベストプラクティスはありますか?(vs. PMDのAssignmentInOperand)
テキストファイルの読み取りを知っているモジュールがいくつかあるJavaアプリケーションがあります。彼らはこのようなコードでそれを非常に簡単に行います:
プロジェクトでPMDを実行したところ、回線で「 AssignmentInOperand」違反が発生しましたwhile (...)
。
明白な以外に、このループを実行する簡単な方法はありますか?
これはより良い習慣と考えられていますか?(コードを「複製」しますがline = br.readLine()
?)
java - PMD と XPath でローカル変数宣言のパッケージを取得するにはどうすればよいですか?
私の問題
特定のパッケージを使用するすべての宣言済み変数を検出するPMD用のカスタム ルールセットを作成したいと考えています。それはXPathルールセットである必要があります。
私がこれまでに持っているもの
import
ステートメントと変数を見つけることができます。このXPathを使用して宣言を見つけています。
ただし、これは正確なクラスにのみ一致しますが、このクラスがパッケージからのものであるかどうかを確認したいのですが、それmy.package
を取得する方法がわかりません。
ヒントはありますか?
maven-2 - Maven の pmd ルールセットをローカルで解決する
私は次のことを試みます:
- すべての Maven2 プロジェクトに対して定義された標準 POM があります。
- その POM には使用するツールが含まれており、PMD の場合は使用するルールセットが含まれています。
- これらのルールセットにそれぞれ名前を付けるプロパティを定義しました。
これが機能していることを知るまで。新しいプロジェクト POM を定義し、そこを標準 POM の親として使用し、そこで定義されたルールセットを使用できます。ルールセットを別の名前で定義するプロパティの定義をオーバーライドすることもできます。
私はそれをauth-pmd-rule-set-3.x-v1-5.xml
代わりにpmd-rule-set-3.x-v1-5.xml
(Maven2によって選択される)として定義しauth-pmd-rule-set-3.x-v1-5.xml
、新しいプロジェクト(の下src/main/resources
)にファイルをローカルに含めました。しかし、Maven はそれを見つけられません。エラー メッセージは次のようになります。
[デバッグ] ルールセットを準備しています: auth-pmd-rule-set-3.x-v1-5.xml
[デバッグ] 前: auth-pmd-rule-set-3.x-v1-5.xml 後: auth-pmd-rule-set-3.x-v1-5.xml
[デバッグ] リソース 'auth-pmd-rule-set-3.x-v1-5.xml' が resourceLoader org.codehaus.plexus.resource.loa der.FileResourceLoader で見つかりませんでした。
[デバッグ] リソース 'auth-pmd-rule-set-3.x-v1-5.xml' が resourceLoader org.codehaus.plexus.resource.loa der.JarResourceLoader で見つかりませんでした。
[デバッグ] リソース 'auth-pmd-rule-set-3.x-v1-5.xml' が resourceLoader org.codehaus.plexus.resource.loa der.ThreadContextClasspathResourceLoader で見つかりませんでした。
[DEBUG] URLResourceLoader: '' java.net.MalformedURLException: no protocol: auth-pmd-rule-set-3. x-v1-5.xml
私が望むものに到達するためのテクニックはありますか?すべての定義全体を繰り返さずに、PMD が使用するルールセットを再定義したいと考えています。
java - シェルから一度に複数のルールを実行する PMD コマンド
JavaソースコードでPMDを試しています。Mac (Unix シェル) のターミナル ウィンドウから理解できますが、構文は次のようになります: pmd.sh html|xml|text|vbhtml rulesetfile1[, rulesetfile2 [,..]] , 2 ... n ... ウェブサイトでこのリストを見たことがあります : http://pmd.sourceforge.net/rules/index.htmlシェルコマンドを実行していますか? この 2 つを相互に関連付けるために、相互参照を教えてもらえますか? 乾杯。
java - PMD Eclipse プラグインのインストールのヘルプ
PMD を Eclipse Helios インストールにインストールしようとしています。通常の手順に従って、Eclipse 内の「Install New Software」機能を使用します。すべて順調に進んでいるようで、インストールは完了です。Eclipse を再起動した後、PMD を使用するオプションが期待どおりに表示されません (プロジェクトを右クリックしても)。
誰かが私が見逃した可能性のある手順についてアドバイスしてもらえますか? Eclipse は、KDE を実行している Red Hat にインストールされている 20100617-1415 バージョンです。
任意のガイダンスをいただければ幸いです。
ありがとう
java - Eclipse:PMDショートカット(ビルド、カスタム...)
これはおそらく完全な怠惰の問題ですが、私は次の問題を経験しています:
コードをPMDチェックする場合は、次の手順を実行する必要があります。
- プロジェクトを右クリック
- コンテキストメニューからPMDを選択します
- 「PMDでコードを確認」を選択します
これを10分に1回実行しても問題ありませんが、実際には30秒に1回ではありません。
このプロセスを高速化する方法はありますか?ショートカットを使用したり(まだ見つけていません)、独自のショートカットを作成したりしますか?
ありがとう