A collection of git hooks for Java to be used with the pre-commit framework.
Requirements
pre-commit-java requires the following to run:
Install
- create
.pre-commit-config.yamlin you git project - pre-commit install
- enjoy :)
example .pre-commit-config.yaml:
- repo: https://github.com/gherynos/pre-commit-java rev: v0.2.0 # Use the ref you want to point at hooks: - id: pmd exclude: /test/ - id: cpd exclude: /test/ - id: checkstyle exclude: /test/ # ...
Available Hooks
| Hook name | Description |
|---|---|
pmd |
Runs the PMD static code analyzer. |
cpd |
Runs the Copy/Paste Detector (CPD). |
checkstyle |
Runs the Checkstyle static code analysis tool. |
Notes about the pmd hook
The default ruleset used is ruleset.xml, which runs all the Java rules with the exception of LoosePackageCoupling.
To specify a custom ruleset, simply pass the argument to the hook:
- id: pmd args: ["-R", "my_ruleset.xml"]
Other CLI arguments are also supported, like -cache for incremental analysis.
Notes about the cpd hook
The default minimum token length is 100.
To change it, simply pass the argument to the hook:
- id: cpd args: ['--minimum-tokens', '50']
Other CLI arguments are also supported.
Notes about the checkstyle hook
The default configuration used is sun_checks.xml.
To specify a custom one, simply pass the argument to the hook:
- id: checkstyle args: ['-c', 'my_checks.xml']
Other CLI arguments are also supported.
Author
GitHub @gherynos
License
pre-commit-java is licensed under the GPLv3 license.