1

これは、PMD静的アナライザーの機能であるコピーアンドペースト検出器についてです。

はい、http://pmd.sourceforge.net/cpd.htmlをよく読みました。

ignoreLiteralsしかし、ant-taskからCPDを実行する場合は、とを指定することでその作業を微調整できますignoreIdentifiers。コマンドラインを使用してこれらのキーを指定するにはどうすればよいですか?

4

2 に答える 2

1

現在は不可能だと思います(pmd4.2.6およびpmd4.1.1を使用)。

単純なPropertiesオブジェクトにはignoreLiteralsandignoreIdentifiers設定が含まれていますが、コマンドラインメソッドはantタスク( )CPD.main()のようにPropertiesオブジェクトをに渡しません。さらに、私が正しければ、これらのプロパティをメソッドに渡しますが、このメソッドはプロパティ引数を使用しません。そのため、IMOと設定はantタスクによって無視されます。LanguageFactoryCPDTaskCPDTaskLanguageFactory.createLanguage(String language, Properties properties)ignoreLiteralsignoreIdentifiers

これに関する古い問題がありますが、まだ開いています。パッチは正しいように見えますが、おそらくそれでも機能します。CPD残念ながら、コマンドラインクラスの修正は含まれていません。おそらくそれはantタスクを修正します。とにかく、この機能が本当に必要な場合は、これらの問題を修正するのはそれほど難しくはありません。

于 2011-09-20T21:37:02.047 に答える
0

sourceforgeのPMD4.3のメモによると、この問題は修正されています。

于 2012-01-23T20:44:20.513 に答える