これは、PMD静的アナライザーの機能であるコピーアンドペースト検出器についてです。
はい、http://pmd.sourceforge.net/cpd.htmlをよく読みました。
ignoreLiterals
しかし、ant-taskからCPDを実行する場合は、とを指定することでその作業を微調整できますignoreIdentifiers
。コマンドラインを使用してこれらのキーを指定するにはどうすればよいですか?
これは、PMD静的アナライザーの機能であるコピーアンドペースト検出器についてです。
はい、http://pmd.sourceforge.net/cpd.htmlをよく読みました。
ignoreLiterals
しかし、ant-taskからCPDを実行する場合は、とを指定することでその作業を微調整できますignoreIdentifiers
。コマンドラインを使用してこれらのキーを指定するにはどうすればよいですか?
現在は不可能だと思います(pmd4.2.6およびpmd4.1.1を使用)。
単純なProperties
オブジェクトにはignoreLiterals
andignoreIdentifiers
設定が含まれていますが、コマンドラインメソッドはantタスク( )CPD.main()
のようにPropertiesオブジェクトをに渡しません。さらに、私が正しければ、これらのプロパティをメソッドに渡しますが、このメソッドはプロパティ引数を使用しません。そのため、IMOと設定はantタスクによって無視されます。LanguageFactory
CPDTask
CPDTask
LanguageFactory.createLanguage(String language, Properties properties)
ignoreLiterals
ignoreIdentifiers
これに関する古い問題がありますが、まだ開いています。パッチは正しいように見えますが、おそらくそれでも機能します。CPD
残念ながら、コマンドラインクラスの修正は含まれていません。おそらくそれはantタスクを修正します。とにかく、この機能が本当に必要な場合は、これらの問題を修正するのはそれほど難しくはありません。
sourceforgeのPMD4.3のメモによると、この問題は修正されています。