Choose build plugin(s) to bake "quality checks" into Gradle and Maven, and avoid configuring each tool separately.
[x] Spotless spike (#489)
[x] Spotless implementation (#535)
[x] Qulice spike (#490)
[x] Qualice implementation -- do not implement as per spike results
[x] CleanThat spike (#491) -- separate from support in Spotless
[ ] error_prone spike (#492) -- note: alternative Java compiler
[ ] Qodana spike (#527) -- CI only?
[ ] CodeQL (#564) -- CI only?
[ ] SonarQube (#580) -- CI only?
[ ] Review security plugins (#493)
[x] Update wiki pages with links to relevant cards for relevant tools
Questions to answer when evaluating a plugin:
What is the license?
Does the plugin work with both Gradle and Maven?
What IDEs have add-ons for the tool?
How does this mesh with Checkstyle? Or can the plugin replace Checkstyle?
Can the plugin automatically reformat the code as part of the local build process?
If code is reformatted before pushing, how will the programmer be aware of this?
Does the plugin have good backward/forward compatibility and adaptability to different versions of the language, its dependencies and the runtime environment (jvm)?
Is the plugin configurable in its rules to meet my team standards?
Book tries to be agnostic on most things. An existing example is the checkstyle settings in config/checkstyle/*.
Choose build plugin(s) to bake "quality checks" into Gradle and Maven, and avoid configuring each tool separately.
Questions to answer when evaluating a plugin:
config/checkstyle/*
.