diff --git a/pmd-ant/pom.xml b/pmd-ant/pom.xml
index bd264fd471..92156edb96 100644
--- a/pmd-ant/pom.xml
+++ b/pmd-ant/pom.xml
@@ -30,6 +30,18 @@
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+
+
+
+ net.sourceforge.pmd.ant.internal
+
+
+
+
diff --git a/pmd-apex/pom.xml b/pmd-apex/pom.xml
index 6c875b3a87..7324f13452 100644
--- a/pmd-apex/pom.xml
+++ b/pmd-apex/pom.xml
@@ -55,6 +55,20 @@
org.jetbrains.dokka
dokka-maven-plugin
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+
+
+
+ net.sourceforge.pmd.lang.apex.internal
+ net.sourceforge.pmd.lang.apex.metrics.internal
+ net.sourceforge.pmd.lang.apex.rule.internal
+
+
+
+
diff --git a/pmd-cli/pom.xml b/pmd-cli/pom.xml
index 8e001b28ae..946c1a8d55 100644
--- a/pmd-cli/pom.xml
+++ b/pmd-cli/pom.xml
@@ -20,6 +20,21 @@
pmd-cli-checkstyle-suppressions.xml
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+
+
+
+ net.sourceforge.pmd.cli.internal
+ net.sourceforge.pmd.cli.commands.internal
+ net.sourceforge.pmd.cli.commands.mixins.internal
+ net.sourceforge.pmd.cli.commands.typesupport.internal
+
+
+
+
diff --git a/pmd-core/pom.xml b/pmd-core/pom.xml
index bceb5e607f..67cd064514 100644
--- a/pmd-core/pom.xml
+++ b/pmd-core/pom.xml
@@ -76,6 +76,26 @@
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+
+
+
+ net.sourceforge.pmd.internal
+ net.sourceforge.pmd.cache.internal
+ net.sourceforge.pmd.cpd.internal
+ net.sourceforge.pmd.lang.ast.internal
+ net.sourceforge.pmd.lang.rule.internal
+ net.sourceforge.pmd.lang.rule.xpath.internal
+ net.sourceforge.pmd.properties.internal
+ net.sourceforge.pmd.renderers.internal
+ net.sourceforge.pmd.util.internal
+
+
+
+
diff --git a/pmd-doc/pom.xml b/pmd-doc/pom.xml
index 682b0a8720..10f70bd0e4 100644
--- a/pmd-doc/pom.xml
+++ b/pmd-doc/pom.xml
@@ -16,6 +16,22 @@
8
+
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+
+
+
+ net.sourceforge.pmd.doc.internal
+
+
+
+
+
+
+
generate-rule-docs
diff --git a/pmd-java/pom.xml b/pmd-java/pom.xml
index 7117e3fb63..dbc0c16c0a 100644
--- a/pmd-java/pom.xml
+++ b/pmd-java/pom.xml
@@ -122,6 +122,26 @@
pmd-java-checkstyle-suppressions.xml
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+
+
+
+ net.sourceforge.pmd.lang.java.internal
+ net.sourceforge.pmd.lang.java.ast.internal
+ net.sourceforge.pmd.lang.java.metrics.internal
+ net.sourceforge.pmd.lang.java.rule.internal
+ net.sourceforge.pmd.lang.java.rule.xpath.internal
+ net.sourceforge.pmd.lang.java.symbols.internal
+ net.sourceforge.pmd.lang.java.symbols.table.internal
+ net.sourceforge.pmd.lang.java.types.internal
+ net.sourceforge.pmd.lang.java.types.ast.internal
+
+
+
+
diff --git a/pmd-kotlin/pom.xml b/pmd-kotlin/pom.xml
index 84b52a59d5..5ea491683a 100644
--- a/pmd-kotlin/pom.xml
+++ b/pmd-kotlin/pom.xml
@@ -63,6 +63,18 @@
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+
+
+
+ net.sourceforge.pmd.lang.kotlin.rule.xpath.internal
+
+
+
+
diff --git a/pmd-modelica/pom.xml b/pmd-modelica/pom.xml
index 9294558039..58a4e48e2b 100644
--- a/pmd-modelica/pom.xml
+++ b/pmd-modelica/pom.xml
@@ -76,6 +76,18 @@
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+
+
+
+ net.sourceforge.pmd.lang.modelica.resolver.internal
+
+
+
+
diff --git a/pmd-plsql/pom.xml b/pmd-plsql/pom.xml
index 545480e663..ff0b7c7f6c 100644
--- a/pmd-plsql/pom.xml
+++ b/pmd-plsql/pom.xml
@@ -79,6 +79,18 @@
pmd-plsql-checkstyle-suppressions.xml
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+
+
+
+ net.sourceforge.pmd.lang.plsql.ast.internal
+
+
+
+
diff --git a/pmd-scala-modules/pmd-scala-common/pom.xml b/pmd-scala-modules/pmd-scala-common/pom.xml
index 498d3bdd46..13a68664ba 100644
--- a/pmd-scala-modules/pmd-scala-common/pom.xml
+++ b/pmd-scala-modules/pmd-scala-common/pom.xml
@@ -123,6 +123,18 @@
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+
+
+
+ net.sourceforge.pmd.lang.scala.internal
+
+
+
+
diff --git a/pmd-visualforce/pom.xml b/pmd-visualforce/pom.xml
index 5446e6956f..d361264c2d 100644
--- a/pmd-visualforce/pom.xml
+++ b/pmd-visualforce/pom.xml
@@ -74,6 +74,18 @@
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+
+
+
+ net.sourceforge.pmd.lang.visualforce.rule.security.internal
+
+
+
+
diff --git a/pmd-xml/pom.xml b/pmd-xml/pom.xml
index e9c3b895b3..3b48f67441 100644
--- a/pmd-xml/pom.xml
+++ b/pmd-xml/pom.xml
@@ -33,6 +33,18 @@
\
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+
+
+
+ net.sourceforge.pmd.lang.xml.ast.internal
+
+
+
+
diff --git a/pom.xml b/pom.xml
index 7aefbb6f6e..3e17adcd59 100644
--- a/pom.xml
+++ b/pom.xml
@@ -624,6 +624,30 @@
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+ 0.20.0
+
+
+ true
+ true
+
+ @net.sourceforge.pmd.annotation.InternalApi
+
+
+
+
+
+ japicmp
+ verify
+
+ cmp
+
+
+
+
@@ -728,6 +752,11 @@
+
+
+ com.github.siom79.japicmp
+ japicmp-maven-plugin
+
@@ -1183,6 +1212,7 @@
true
true
true
+ true