diff --git a/pmd.xml b/pmd.xml
new file mode 100644
index 000000000000..ed9ff2f82dc4
--- /dev/null
+++ b/pmd.xml
@@ -0,0 +1,13 @@
+
+
+ DefinitionOfDone
+ .*/Multisets.java
+ .*/com/google/common/reflect/A*.*
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index d1eaee8aae32..75bc17d75f25 100644
--- a/pom.xml
+++ b/pom.xml
@@ -130,9 +130,69 @@
+
+ org.apache.maven.plugins
+ maven-pmd-plugin
+
+
+ org.openrewrite.maven
+ rewrite-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-pmd-plugin
+ 3.27.0
+
+ true
+ true
+ true
+ true
+
+ pmd.xml
+
+
+
+
+ verify
+
+ check
+
+
+
+
+
+ org.openrewrite.maven
+ rewrite-maven-plugin
+ 6.15.0
+
+
+ DefinitionOfDone
+
+
+ package-info.java
+
+ true
+ true
+
+
+
+ verify
+
+ dryRun
+
+
+
+
+
+ org.openrewrite.recipe
+ rewrite-static-analysis
+ 2.16.0
+
+
+
maven-antrun-plugin
1.6
diff --git a/rewrite.yml b/rewrite.yml
new file mode 100644
index 000000000000..de2ff2aadc29
--- /dev/null
+++ b/rewrite.yml
@@ -0,0 +1,6 @@
+type: specs.openrewrite.org/v1beta/recipe
+name: DefinitionOfDone
+displayName: Definition of Done
+description: Automatically cleanup code to comply checkstyle convention.
+recipeList:
+ - org.openrewrite.maven.BestPractices