xvik / gradle-quality-plugin

Gradle quality plugin for Java and Groovy
http://xvik.github.io/gradle-quality-plugin
MIT License
134 stars 11 forks source link

Support copy-paste-detector #4

Closed dovogt closed 5 years ago

dovogt commented 6 years ago

Is it possible for the plugin to support CPD (copy-paste-detector)? https://pmd.github.io/pmd-6.2.0/#cpd

xvik commented 6 years ago

There is gradle-cpd-plugin. I can provide integration for it: when the plugin is present, it will be configured (like with animalsniffer plugin). And, I suppose, custom console reporting will be required.

But I will not have time for it too soon, so I suggest you use cpd plugin directly for now.

dovogt commented 6 years ago

I use this plugin. I have to configure it separately and make sure that the PMD version is the same. It would be great if you integrated it.

xvik commented 5 years ago

CDP plugin will be supported in the new version. Cpd project is assumed to be applied manually, so quality plugin applies configurations only if plugin exists (no automatic registrations):

For multi-module projects, it is assumed that cpd plugin will be declared in root project (as plugin author suggests) and quality plugins will be applied in subprojects. In this case, cpd plugin will be also configured. cpdCheck task source will also be affected: each submodule will exclude not needed sources and so for each module cpd "scope" will be the same as for other quality plugins.

Submodule check will depend on root cpdCheck (again, as suggested by plugin author)

In case of multiple cpd tasks declared, each task will have custom console reporting + html report. But only default cpdCheck task sources are affected.

Cpd configuration supposed to be performed in cpd closure (quality plugin does not affect it)