Danger PMD
Checks on your Gradle project's Java source files. This is done using PMD Results are passed out as tables in markdown.
This plugin is inspired from https://github.com/kazy1991/danger-findbugs.
Installation
$ gem install danger-pmd
Usage
Methods and attributes from this plugin are available in
your `Dangerfile` under the `pmd` namespace.
Running PMD with its basic configurationpmd.report
Running PMD with a specific Gradle task or report file (glob accepted)pmd.gradle_task = 'module:pmd' # default: 'pmd' pmd.report_file = 'module/build/reports/pmd/pmd.xml' # default: 'app/build/reports/pmd/pmd.xml' pmd.report
Running PMD with a specific root pathpmd.root_path = '/Users/developer/project' # default: result of `git rev-parse --show-toplevel` pmd.report
Running PMD with an array of report files (glob accepted)pmd.report_files = ['modules/**/build/reports/pmd/pmd.xml', 'app/build/reports/pmd/pmd.xml'] pmd.report
Running PMD without running a Gradle taskpmd.skip_gradle_task = true # default: false pmd.report
Running PMD without inline commentpmd.report(inline_mode: false) # default: true
Attributes
gradle_task
- Custom Gradle task to run.
This is useful when your project has different flavors.
Defaults to "pmd".
skip_gradle_task
- Skip Gradle task.
If you skip Gradle task, for example project does not manage Gradle.
Defaults to false
.
root_path
- An absolute path to a root.
To comment errors to VCS, this needs to know relative path of files from the root.
Defaults to result of "git rev-parse --show-toplevel".
report_file
- Location of report file.
If your pmd task outputs to a different location, you can specify it here.
Defaults to "app/build/reports/pmd/pmd.xml".
report_files
- Location of report files.
If your pmd task outputs to a different location, you can specify it here.
Defaults to ['app/build/reports/pmd/pmd.xml'].
Methods
report
- Calls PMD task of your Gradle project.
It fails if gradlew
cannot be found inside current directory.
It fails if report_file
cannot be found inside current directory.
It fails if report_files
is empty.
gradle_task
- A getter for gradle_task
, returning Gradle task report.
skip_gradle_task
- A getter for skip_gradle_task
.
root_path
- A getter for root_path
.
report_file
- A getter for report_file
.
report_files
- A getter for report_files
.
Development
- Clone this repo
- Run
bundle install
to setup dependencies. - Run
bundle exec rake spec
to run the tests. - Use
bundle exec guard
to automatically have tests run as you make changes. - Make your changes.