]> juplo.de Git - maven-thymeleaf-skin/commitdiff
Apply Maven POM best practices: pluginManagement, properties, enforcer
authorKai Moritz <kai.milan.moritz@googlemail.com>
Wed, 17 Jun 2026 18:48:37 +0000 (18:48 +0000)
committerKai Moritz <kai@juplo.de>
Wed, 17 Jun 2026 20:05:58 +0000 (22:05 +0200)
- properties: add reporting.outputEncoding, project.build.outputTimestamp
  (reproducible builds); extract all plugin versions as properties with
  standard {artifactId}.version naming; add maven-fluido-skin.version
  (referenced from site.xml via filtering, so stays in sync)
- pluginManagement: declare explicit versions for all Maven lifecycle
  plugins (clean, resources, compiler, jar, install, deploy) — overrides
  outdated oss-parent:9 defaults — plus enforcer and site plugin with
  their full configuration (moves config out of <plugins> into mgmt)
- maven-enforcer-plugin: require Maven >= 3.8.5 (no Java version rule
  since the project has no Java sources)
- maven-resources-plugin: upgrade 2.7 → 3.3.1; remove explicit
  maven-filtering:1.3 dependency (no longer needed in 3.x); rename
  execution id copy-resources → filter-site-resources for clarity
- site.xml: use ${maven-fluido-skin.version} property (filtered at
  pre-site phase, single source of truth in pom.xml properties)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pom.xml
src/site/site.xml

diff --git a/pom.xml b/pom.xml
index 292cce4f811513f480d31cd1e8eb1b6300edbb12..353fb56321fd27a1f23a920935f4722204894efb 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<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">
+<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>
 
   <parent>
     </license>
   </licenses>
 
-
   <properties>
 
-    <!-- Zeichensatz -->
+    <!-- Build settings -->
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    <!-- Update to last commit timestamp before each release (ISO-8601) -->
+    <project.build.outputTimestamp>2026-06-17T00:00:00Z</project.build.outputTimestamp>
+
+    <!-- Maven lifecycle plugin versions (override oss-parent:9 defaults) -->
+    <maven-clean-plugin.version>3.3.2</maven-clean-plugin.version>
+    <maven-resources-plugin.version>3.3.1</maven-resources-plugin.version>
+    <maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version>
+    <maven-jar-plugin.version>3.3.0</maven-jar-plugin.version>
+    <maven-install-plugin.version>3.1.1</maven-install-plugin.version>
+    <maven-deploy-plugin.version>3.1.1</maven-deploy-plugin.version>
+
+    <!-- Additional plugin versions -->
+    <maven-enforcer-plugin.version>3.4.1</maven-enforcer-plugin.version>
+    <maven-site-plugin.version>3.12.1</maven-site-plugin.version>
+    <maven-project-info-reports-plugin.version>3.7.0</maven-project-info-reports-plugin.version>
+
+    <!-- Dependency versions used by plugins -->
+    <doxia-module-markdown.version>1.11.1</doxia-module-markdown.version>
+    <maven-fluido-skin.version>1.12.0</maven-fluido-skin.version>
 
   </properties>
 
   <build>
+    <pluginManagement>
+      <plugins>
+        <!-- Maven lifecycle plugins: explicit versions override oss-parent:9 defaults -->
+        <plugin>
+          <artifactId>maven-clean-plugin</artifactId>
+          <version>${maven-clean-plugin.version}</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-resources-plugin</artifactId>
+          <version>${maven-resources-plugin.version}</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>${maven-compiler-plugin.version}</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-jar-plugin</artifactId>
+          <version>${maven-jar-plugin.version}</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-install-plugin</artifactId>
+          <version>${maven-install-plugin.version}</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-deploy-plugin</artifactId>
+          <version>${maven-deploy-plugin.version}</version>
+        </plugin>
+        <!-- Additional plugins -->
+        <plugin>
+          <artifactId>maven-enforcer-plugin</artifactId>
+          <version>${maven-enforcer-plugin.version}</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-site-plugin</artifactId>
+          <version>${maven-site-plugin.version}</version>
+          <configuration>
+            <siteDirectory>${project.build.directory}/filtered-site</siteDirectory>
+          </configuration>
+          <dependencies>
+            <dependency>
+              <groupId>org.apache.maven.doxia</groupId>
+              <artifactId>doxia-module-markdown</artifactId>
+              <version>${doxia-module-markdown.version}</version>
+            </dependency>
+          </dependencies>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+
     <plugins>
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>enforce-maven</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <requireMavenVersion>
+                  <version>[3.8.5,)</version>
+                </requireMavenVersion>
+              </rules>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
         <artifactId>maven-resources-plugin</artifactId>
-        <version>2.7</version>
-        <dependencies>
-          <dependency>
-            <groupId>org.apache.maven.shared</groupId>
-            <artifactId>maven-filtering</artifactId>
-            <version>1.3</version>
-          </dependency>
-        </dependencies>
         <executions>
           <execution>
-            <id>copy-resources</id>
+            <id>filter-site-resources</id>
             <phase>pre-site</phase>
             <goals>
               <goal>copy-resources</goal>
           </execution>
         </executions>
       </plugin>
-      <plugin>
-        <artifactId>maven-site-plugin</artifactId>
-        <version>3.12.1</version>
-        <configuration>
-          <siteDirectory>${project.build.directory}/filtered-site</siteDirectory>
-        </configuration>
-        <dependencies>
-          <dependency>
-            <groupId>org.apache.maven.doxia</groupId>
-            <artifactId>doxia-module-markdown</artifactId>
-            <version>1.11.1</version>
-          </dependency>
-        </dependencies>
-      </plugin>
     </plugins>
   </build>
 
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-project-info-reports-plugin</artifactId>
-        <version>3.7.0</version>
+        <version>${maven-project-info-reports-plugin.version}</version>
         <configuration>
           <linkOnly>true</linkOnly>
         </configuration>
index 0f01cf2688e2ff972d0b0668726ef2d1c2621319..3fac5b84bf3ac4b9b923c60b464c4fb766a6b820 100644 (file)
@@ -10,7 +10,7 @@
   <skin>
     <groupId>org.apache.maven.skins</groupId>
     <artifactId>maven-fluido-skin</artifactId>
-    <version>1.12.0</version>
+    <version>${maven-fluido-skin.version}</version>
   </skin>
 
   <bannerLeft>