You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gn...@apache.org on 2022/11/14 23:06:11 UTC

[maven-parent] branch master updated: [MPOM-349] Apply spotless to check/reformat code + poms (#82)

This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-parent.git


The following commit(s) were added to refs/heads/master by this push:
     new ea48d2a  [MPOM-349] Apply spotless to check/reformat code + poms (#82)
ea48d2a is described below

commit ea48d2ae013d94b437855577651fa53a2da421b7
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Tue Nov 15 00:06:06 2022 +0100

    [MPOM-349] Apply spotless to check/reformat code + poms (#82)
    
    * [MPOM-349] Apply spotless to check/reformat code + poms
    * [MPOM-349] Reformat poms
---
 apache-resource-bundles/pom.xml |   8 +--
 doxia-tools/pom.xml             |  11 ++--
 maven-extensions/pom.xml        |  16 ++---
 maven-plugins/pom.xml           |  16 ++---
 maven-shared-components/pom.xml |  11 ++--
 maven-skins/pom.xml             |  11 ++--
 pom.xml                         | 134 +++++++++++++++++++++++++++++++---------
 7 files changed, 144 insertions(+), 63 deletions(-)

diff --git a/apache-resource-bundles/pom.xml b/apache-resource-bundles/pom.xml
index d7bb86e..e66a531 100644
--- a/apache-resource-bundles/pom.xml
+++ b/apache-resource-bundles/pom.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements.  See the NOTICE file
@@ -18,7 +17,6 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
   -->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
@@ -42,8 +40,8 @@
   </issueManagement>
 
   <ciManagement>
-    <url>https://ci-builds.apache.org/job/Maven/job/maven-box/job/maven-project-resources/</url>
     <system>Jenkins</system>
+    <url>https://ci-builds.apache.org/job/Maven/job/maven-box/job/maven-project-resources/</url>
   </ciManagement>
 
   <!-- There is no distributionManagement for this project. The site is a part of the main Maven site. -->
@@ -51,8 +49,8 @@
   <build>
     <plugins>
       <!-- Turn this into a lifecycle -->
-      <plugin>      
-        <artifactId>maven-remote-resources-plugin</artifactId>        
+      <plugin>
+        <artifactId>maven-remote-resources-plugin</artifactId>
         <executions>
           <execution>
             <goals>
diff --git a/doxia-tools/pom.xml b/doxia-tools/pom.xml
index 2b2f0f7..dcefd53 100644
--- a/doxia-tools/pom.xml
+++ b/doxia-tools/pom.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -18,7 +17,6 @@ KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 -->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
@@ -67,7 +65,8 @@ under the License.
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-site-plugin</artifactId>
           <configuration>
-            <skipDeploy>true</skipDeploy><!-- don't deploy site with maven-site-plugin -->
+            <!-- don't deploy site with maven-site-plugin -->
+            <skipDeploy>true</skipDeploy>
           </configuration>
         </plugin>
       </plugins>
@@ -77,15 +76,17 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-scm-publish-plugin</artifactId>
         <configuration>
-          <content>${project.reporting.outputDirectory}</content><!-- no need for site:stage, use target/site -->
+          <!-- no need for site:stage, use target/site -->
+          <content>${project.reporting.outputDirectory}</content>
         </configuration>
         <executions>
           <execution>
+            <!-- deploy site with maven-scm-publish-plugin -->
             <id>scm-publish</id>
-            <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
             <goals>
               <goal>publish-scm</goal>
             </goals>
+            <phase>site-deploy</phase>
           </execution>
         </executions>
       </plugin>
diff --git a/maven-extensions/pom.xml b/maven-extensions/pom.xml
index 2b46866..09f08f6 100644
--- a/maven-extensions/pom.xml
+++ b/maven-extensions/pom.xml
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -17,7 +17,6 @@ KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 -->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
@@ -62,22 +61,25 @@ under the License.
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-site-plugin</artifactId>
           <configuration>
-            <skipDeploy>true</skipDeploy><!-- don't deploy site with maven-site-plugin -->
+            <skipDeploy>true</skipDeploy>
+            <!-- don't deploy site with maven-site-plugin -->
           </configuration>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-scm-publish-plugin</artifactId>
           <configuration>
-            <content>${project.reporting.outputDirectory}</content><!-- no need for site:stage, use target/site -->
+            <!-- no need for site:stage, use target/site -->
+            <content>${project.reporting.outputDirectory}</content>
           </configuration>
           <executions>
             <execution>
+              <!-- deploy site with maven-scm-publish-plugin -->
               <id>scm-publish</id>
-              <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
               <goals>
                 <goal>publish-scm</goal>
               </goals>
+              <phase>site-deploy</phase>
             </execution>
           </executions>
         </plugin>
@@ -89,10 +91,10 @@ under the License.
         <artifactId>maven-enforcer-plugin</artifactId>
         <executions>
           <execution>
+            <id>ensure-no-container-api</id>
             <goals>
               <goal>enforce</goal>
             </goals>
-            <id>ensure-no-container-api</id>
             <configuration>
               <rules>
                 <bannedDependencies>
@@ -127,10 +129,10 @@ under the License.
             <executions>
               <execution>
                 <id>docck-check</id>
-                <phase>verify</phase>
                 <goals>
                   <goal>check</goal>
                 </goals>
+                <phase>verify</phase>
               </execution>
             </executions>
           </plugin>
diff --git a/maven-plugins/pom.xml b/maven-plugins/pom.xml
index 385175b..7f1d352 100644
--- a/maven-plugins/pom.xml
+++ b/maven-plugins/pom.xml
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -17,7 +17,6 @@ KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 -->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
@@ -94,7 +93,8 @@ under the License.
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-site-plugin</artifactId>
           <configuration>
-            <skipDeploy>true</skipDeploy><!-- don't deploy site with maven-site-plugin -->
+            <!-- don't deploy site with maven-site-plugin -->
+            <skipDeploy>true</skipDeploy>
           </configuration>
         </plugin>
       </plugins>
@@ -108,15 +108,17 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-scm-publish-plugin</artifactId>
         <configuration>
-          <content>${project.reporting.outputDirectory}</content><!-- no need for site:stage, use target/site -->
+          <!-- no need for site:stage, use target/site -->
+          <content>${project.reporting.outputDirectory}</content>
         </configuration>
         <executions>
           <execution>
+            <!-- deploy site with maven-scm-publish-plugin -->
             <id>scm-publish</id>
-            <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
             <goals>
               <goal>publish-scm</goal>
             </goals>
+            <phase>site-deploy</phase>
           </execution>
         </executions>
       </plugin>
@@ -125,10 +127,10 @@ under the License.
         <artifactId>maven-enforcer-plugin</artifactId>
         <executions>
           <execution>
+            <id>ensure-no-container-api</id>
             <goals>
               <goal>enforce</goal>
             </goals>
-            <id>ensure-no-container-api</id>
             <configuration>
               <rules>
                 <bannedDependencies>
@@ -163,10 +165,10 @@ under the License.
             <executions>
               <execution>
                 <id>docck-check</id>
-                <phase>verify</phase>
                 <goals>
                   <goal>check</goal>
                 </goals>
+                <phase>verify</phase>
               </execution>
             </executions>
           </plugin>
diff --git a/maven-shared-components/pom.xml b/maven-shared-components/pom.xml
index 6a1641d..f35c70c 100644
--- a/maven-shared-components/pom.xml
+++ b/maven-shared-components/pom.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -18,7 +17,6 @@ KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 -->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
@@ -64,7 +62,8 @@ under the License.
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-site-plugin</artifactId>
           <configuration>
-            <skipDeploy>true</skipDeploy><!-- don't deploy site with maven-site-plugin -->
+            <!-- don't deploy site with maven-site-plugin -->
+            <skipDeploy>true</skipDeploy>
           </configuration>
         </plugin>
       </plugins>
@@ -74,15 +73,17 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-scm-publish-plugin</artifactId>
         <configuration>
-          <content>${project.reporting.outputDirectory}</content><!-- no need for site:stage, use target/site -->
+          <!-- no need for site:stage, use target/site -->
+          <content>${project.reporting.outputDirectory}</content>
         </configuration>
         <executions>
           <execution>
+            <!-- deploy site with maven-scm-publish-plugin -->
             <id>scm-publish</id>
-            <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
             <goals>
               <goal>publish-scm</goal>
             </goals>
+            <phase>site-deploy</phase>
           </execution>
         </executions>
       </plugin>
diff --git a/maven-skins/pom.xml b/maven-skins/pom.xml
index 77d4f6c..fabc9ff 100644
--- a/maven-skins/pom.xml
+++ b/maven-skins/pom.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -18,7 +17,6 @@ KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 -->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
@@ -71,7 +69,8 @@ under the License.
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-site-plugin</artifactId>
           <configuration>
-            <skipDeploy>true</skipDeploy><!-- don't deploy site with maven-site-plugin -->
+            <!-- don't deploy site with maven-site-plugin -->
+            <skipDeploy>true</skipDeploy>
           </configuration>
         </plugin>
       </plugins>
@@ -81,15 +80,17 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-scm-publish-plugin</artifactId>
         <configuration>
-          <content>${project.reporting.outputDirectory}</content><!-- no need for site:stage, use target/site -->
+          <!-- no need for site:stage, use target/site -->
+          <content>${project.reporting.outputDirectory}</content>
         </configuration>
         <executions>
           <execution>
+            <!-- deploy site with maven-scm-publish-plugin -->
             <id>scm-publish</id>
-            <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
             <goals>
               <goal>publish-scm</goal>
             </goals>
+            <phase>site-deploy</phase>
           </execution>
         </executions>
       </plugin>
diff --git a/pom.xml b/pom.xml
index 01854af..7d0f88c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -18,7 +17,6 @@ KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 -->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
@@ -104,10 +102,10 @@ under the License.
       <id>cstamas</id>
       <name>Tamas Cservenak</name>
       <email>cstamas@apache.org</email>
-      <timezone>+1</timezone>
       <roles>
         <role>PMC Member</role>
       </roles>
+      <timezone>+1</timezone>
     </developer>
     <developer>
       <id>dennisl</id>
@@ -228,10 +226,10 @@ under the License.
       <name>Ralph Goers</name>
       <email>rgoers@apache.org</email>
       <organization>Intuit</organization>
-      <timezone>-8</timezone>
       <roles>
         <role>PMC Member</role>
       </roles>
+      <timezone>-8</timezone>
     </developer>
     <developer>
       <id>sjaranowski</id>
@@ -294,20 +292,20 @@ under the License.
       <id>adangel</id>
       <name>Andreas Dangel</name>
       <email>adangel@apache.org</email>
-      <timezone>Europe/Berlin</timezone>
       <roles>
         <role>Committer</role>
       </roles>
+      <timezone>Europe/Berlin</timezone>
     </developer>
     <developer>
       <id>bdemers</id>
       <name>Brian Demers</name>
-      <organization>Sonatype</organization>
       <email>bdemers@apache.org</email>
-      <timezone>-5</timezone>
+      <organization>Sonatype</organization>
       <roles>
         <role>Committer</role>
       </roles>
+      <timezone>-5</timezone>
     </developer>
     <developer>
       <id>bellingard</id>
@@ -339,20 +337,20 @@ under the License.
       <id>dantran</id>
       <name>Dan Tran</name>
       <email>dantran@apache.org</email>
-      <timezone>-8</timezone>      
       <roles>
         <role>Committer</role>
       </roles>
+      <timezone>-8</timezone>
     </developer>
     <developer>
       <id>dbradicich</id>
       <name>Damian Bradicich</name>
-      <organization>Sonatype</organization>
       <email>dbradicich@apache.org</email>
-      <timezone>-5</timezone>
+      <organization>Sonatype</organization>
       <roles>
         <role>Committer</role>
       </roles>
+      <timezone>-5</timezone>
     </developer>
     <developer>
       <id>brett</id>
@@ -406,8 +404,8 @@ under the License.
     <developer>
       <id>godin</id>
       <name>Evgeny Mandrikov</name>
-      <organization>SonarSource</organization>
       <email>godin@apache.org</email>
+      <organization>SonarSource</organization>
       <roles>
         <role>Committer</role>
       </roles>
@@ -430,7 +428,7 @@ under the License.
         <role>Committer</role>
       </roles>
       <timezone>Europe/Zurich</timezone>
-    </developer>     
+    </developer>
     <developer>
       <id>jjensen</id>
       <name>Jeff Jensen</name>
@@ -878,9 +876,9 @@ under the License.
     </mailingList>
     <mailingList>
       <name>Maven Announcements List</name>
-      <post>announce@maven.apache.org</post>
       <subscribe>mailto:announce-subscribe@maven.apache.org</subscribe>
       <unsubscribe>mailto:announce-unsubscribe@maven.apache.org</unsubscribe>
+      <post>announce@maven.apache.org</post>
       <archive>https://lists.apache.org/list.html?announce@maven.apache.org</archive>
       <otherArchives>
         <otherArchive>https://mail-archives.apache.org/mod_mbox/maven-announce/</otherArchive>
@@ -911,8 +909,8 @@ under the License.
   <scm>
     <connection>scm:git:https://gitbox.apache.org/repos/asf/maven-parent.git</connection>
     <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-parent.git</developerConnection>
-    <url>https://github.com/apache/maven-parent/tree/${project.scm.tag}</url>
     <tag>HEAD</tag>
+    <url>https://github.com/apache/maven-parent/tree/${project.scm.tag}</url>
   </scm>
 
   <ciManagement>
@@ -937,15 +935,21 @@ under the License.
   <properties>
     <javaVersion>8</javaVersion>
     <maven.compiler.source>1.${javaVersion}</maven.compiler.source>
-    <maven.compiler.target>1.${javaVersion}</maven.compiler.target>    
+    <maven.compiler.target>1.${javaVersion}</maven.compiler.target>
     <sonar.host.url>https://builds.apache.org/analysis/</sonar.host.url>
     <maven.site.cache>${user.home}/maven-sites</maven.site.cache>
-    <maven.site.path>../..</maven.site.path><!-- to be overridden -->
+    <!-- to be overridden -->
+    <maven.site.path>../..</maven.site.path>
     <sisuVersion>0.3.5</sisuVersion>
     <fluidoSkinVersion>1.11.1</fluidoSkinVersion>
-    <surefire.version>3.0.0-M7</surefire.version><!-- for surefire, failsafe and surefire-report -->
-    <!-- don't fail check for some rules that are too hard to enforce (could even be told broken for some) -->
-    <checkstyle.violation.ignore>RedundantThrows,NewlineAtEndOfFile,ParameterNumber,MethodLength,FileLength</checkstyle.violation.ignore>
+    <!-- for surefire, failsafe and surefire-report -->
+    <surefire.version>3.0.0-M7</surefire.version>
+    <!-- don't fail check for some rules that are too hard to enforce (could even be told broken for some)
+         and those that are enforced by the formatting checks from spotless -->
+    <checkstyle.violation.spotless.ignore>LineLength,RegexpHeader,LeftCurly,RightCurly,OperatorWrap,ParenPad,
+      WhitespaceAfter,WhitespaceAround,GenericWhitespace</checkstyle.violation.spotless.ignore>
+    <checkstyle.violation.ignore>RedundantThrows,NewlineAtEndOfFile,ParameterNumber,MethodLength,FileLength,
+      ${checkstyle.violation.spotless.ignore}</checkstyle.violation.ignore>
     <project.build.outputTimestamp>2022-07-20T17:09:29Z</project.build.outputTimestamp>
   </properties>
 
@@ -971,13 +975,14 @@ under the License.
   </dependencyManagement>
 
   <repositories>
-    <repository><!-- useful to resolve parent pom when it is a SNAPSHOT -->
-      <id>apache.snapshots</id>
-      <name>Apache Snapshot Repository</name>
-      <url>https://repository.apache.org/snapshots</url>
+    <!-- useful to resolve parent pom when it is a SNAPSHOT -->
+    <repository>
       <releases>
         <enabled>false</enabled>
       </releases>
+      <id>apache.snapshots</id>
+      <name>Apache Snapshot Repository</name>
+      <url>https://repository.apache.org/snapshots</url>
     </repository>
   </repositories>
 
@@ -1050,7 +1055,7 @@ under the License.
             <dependency>
               <groupId>org.apache.maven.shared</groupId>
               <artifactId>maven-shared-resources</artifactId>
-              <version>4</version>
+              <version>5</version>
             </dependency>
           </dependencies>
         </plugin>
@@ -1159,9 +1164,53 @@ under the License.
             </execution>
           </executions>
         </plugin>
+        <plugin>
+          <groupId>com.diffplug.spotless</groupId>
+          <artifactId>spotless-maven-plugin</artifactId>
+          <version>2.27.1</version>
+          <configuration>
+            <java>
+              <importOrder>
+                <file>config/maven-eclipse-importorder.txt</file>
+              </importOrder>
+              <removeUnusedImports/>
+              <palantirJavaFormat/>
+              <licenseHeader>
+                <file>config/maven-header-plain.txt</file>
+              </licenseHeader>
+            </java>
+            <pom>
+              <sortPom>
+                <expandEmptyElements>false</expandEmptyElements>
+              </sortPom>
+            </pom>
+            <upToDateChecking>
+              <enabled>true</enabled>
+            </upToDateChecking>
+          </configuration>
+          <dependencies>
+            <dependency>
+              <groupId>org.apache.maven.shared</groupId>
+              <artifactId>maven-shared-resources</artifactId>
+              <version>5</version>
+            </dependency>
+          </dependencies>
+          <executions>
+            <execution>
+              <goals>
+                <goal>${spotless.action}</goal>
+              </goals>
+              <phase>process-sources</phase>
+            </execution>
+          </executions>
+        </plugin>
       </plugins>
     </pluginManagement>
     <plugins>
+      <plugin>
+        <groupId>com.diffplug.spotless</groupId>
+        <artifactId>spotless-maven-plugin</artifactId>
+      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
@@ -1172,6 +1221,7 @@ under the License.
             <goals>
               <goal>check</goal>
             </goals>
+            <phase>validate</phase>
           </execution>
         </executions>
       </plugin>
@@ -1184,11 +1234,15 @@ under the License.
         <artifactId>apache-rat-plugin</artifactId>
         <configuration>
           <excludes combine.children="append">
-            <exclude>.repository/**</exclude><!-- Jenkins job with local Maven repository -->
-            <exclude>.maven/spy.log</exclude><!-- Hudson Maven3 integration log -->
-            <exclude>dependency-reduced-pom.xml</exclude><!-- Maven shade plugin -->
-            <exclude>.asf.yaml</exclude><!-- GitHub Support -->
             <exclude>.java-version</exclude>
+            <!-- Jenkins job with local Maven repository -->
+            <exclude>.repository/**</exclude>
+            <!-- Hudson Maven3 integration log -->
+            <exclude>.maven/spy.log</exclude>
+            <!-- Maven shade plugin -->
+            <exclude>dependency-reduced-pom.xml</exclude>
+            <!-- GitHub Support -->
+            <exclude>.asf.yaml</exclude>
           </excludes>
         </configuration>
         <executions>
@@ -1234,6 +1288,28 @@ under the License.
   </reporting>
 
   <profiles>
+    <profile>
+      <id>format-check</id>
+      <activation>
+        <property>
+          <name>!format</name>
+        </property>
+      </activation>
+      <properties>
+        <spotless.action>check</spotless.action>
+      </properties>
+    </profile>
+    <profile>
+      <id>format</id>
+      <activation>
+        <property>
+          <name>format</name>
+        </property>
+      </activation>
+      <properties>
+        <spotless.action>apply</spotless.action>
+      </properties>
+    </profile>
     <profile>
       <!-- "utility" profile allowing all downstream projects to prepare for upcoming bans: drop legacy -->
       <id>drop-legacy-dependencies</id>
@@ -1328,10 +1404,10 @@ under the License.
             <executions>
               <execution>
                 <id>cpd-check</id>
-                <phase>verify</phase>
                 <goals>
                   <goal>cpd-check</goal>
                 </goals>
+                <phase>verify</phase>
               </execution>
             </executions>
           </plugin>