commit | f39c0018e622e6c12a3a3df3a2a92bfb0ceeab44 | [log] [tgz] |
---|---|---|
author | Andreas Dangel <adangel@apache.org> | Fri Oct 16 13:06:53 2020 +0200 |
committer | Andreas Dangel <adangel@apache.org> | Fri Oct 16 13:07:17 2020 +0200 |
tree | 16bebc68382ade7bd13a25890b4511496423c329 | |
parent | 597d4cb712cf63a17daf67e6f0c0516fe1643e69 [diff] |
[MPMD-304] - maven-pmd-plugin should be toolchains-aware Separates the execution of PMD and CPD from PmdReport/CpdReport into separate classes PmdExecutor/CpdExecutor under package o.a.m.p.pmd.exec. All the necessary plugin properties/parameters are handed over as PmdRequest/CpdRequest. If a toolchain is in use, then PmdExecutor/CpdExecutor is called in a forked JVM. PmdRequest/CpdRequest is serialized/deserialized. Without a toolchain, PmdExecutor/CpdExecutor is directly called. The result is provided for reporting via PmdResult/CpdResult. These classes are just wrappers around the files `target/pmd.xml` and `target/cpd.xml` which are always created. Basically, PMD serializes the results into these XML files and m-pmd-p picks it up from there (like the check goal). The public method `PmdReport.getPMDConfiguration()` is gone, since PMDConfiguration is created now by PmdExecutor and is not exposed anymore. There is no direct replacement for this method. PmdReportGenerator and CpdReportGenerator now work with the classes generated by modello (in other words, they work now with the XML format of PMD) instead of using PMD classes directly. This further decouples the plugin from PMD. Closes #31
You have found a bug or you have an idea for a cool new feature? Contributing code is a great way to give something back to the open source community. Before you dig right into the code, there are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things.
We accept Pull Requests via GitHub. The developer mailing list is the main channel of communication for contributors.
There are some guidelines which will make applying PRs easier for us:
git diff --check
before committing.[MPMD-XXX] - Subject of the JIRA Ticket Optional supplemental description.
mvn -Prun-its verify
to assure nothing else was accidentally broken.If you plan to contribute on a regular basis, please consider filing a contributor license agreement.
For changes of a trivial nature to comments and documentation, it is not always necessary to create a new ticket in JIRA. In this case, it is appropriate to start the first line of a commit with ‘(doc)’ instead of a ticket number.