mp151: Site stabil konfigurieren
Konfigurationsbeispiel
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.21.0</version>
<configuration>
<locales>de</locales>
<outputDirectory>${project.build.directory}/site</outputDirectory>
</configuration>
<executions>
<execution>
<id>site-site</id>
<phase>site</phase>
<goals><goal>site</goal></goals>
</execution>
</executions>
</plugin>mp152: Project Info Reports als CI-Gate einsetzen
Konfigurationsbeispiel
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.9.0</version>
<configuration>
<dependencyDetailsEnabled>true</dependencyDetailsEnabled>
<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
</configuration>
<executions>
<execution>
<id>site-dependencies</id>
<phase>site</phase>
<goals><goal>dependencies</goal></goals>
</execution>
</executions>
</plugin>mp153: Release für Enterprise-Releases absichern
Konfigurationsbeispiel
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<tagNameFormat>@{project.artifactId}-@{project.version}</tagNameFormat>
<autoVersionSubmodules>true</autoVersionSubmodules>
<pushChanges>false</pushChanges>
</configuration>
<executions>
<execution>
<id>deploy-prepare</id>
<phase>deploy</phase>
<goals><goal>prepare</goal></goals>
</execution>
</executions>
</plugin>mp154: Archetype mit wichtigen Parametern steuern
Konfigurationsbeispiel
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<archetypeCatalog>internal</archetypeCatalog>
<interactiveMode>false</interactiveMode>
</configuration>
<executions>
<execution>
<id>generate-sources-generate</id>
<phase>generate-sources</phase>
<goals><goal>generate</goal></goals>
</execution>
</executions>
</plugin>mp155: Plugin für reproduzierbare Builds nutzen
Konfigurationsbeispiel
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.15.1</version>
<configuration>
<goalPrefix>acme-build</goalPrefix>
<skipErrorNoDescriptorsFound>false</skipErrorNoDescriptorsFound>
</configuration>
<executions>
<execution>
<id>process-classes-descriptor</id>
<phase>process-classes</phase>
<goals><goal>descriptor</goal></goals>
</execution>
</executions>
</plugin>mp156: Invoker in Multi-Modul-Projekten vereinheitlichen
Konfigurationsbeispiel
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>3.9.0</version>
<configuration>
<projectsDirectory>src/it</projectsDirectory>
<goals><goal>verify</goal></goals>
<streamLogs>true</streamLogs>
</configuration>
<executions>
<execution>
<id>verify-run</id>
<phase>verify</phase>
<goals><goal>run</goal></goals>
<configuration>
<projectsDirectory>src/it</projectsDirectory>
<goals><goal>verify</goal></goals>
<streamLogs>true</streamLogs>
</configuration>
</execution>
</executions>
</plugin>mp157: Resources gegen typische Legacy-Fehler härten
Konfigurationsbeispiel
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions><nonFilteredFileExtension>p12</nonFilteredFileExtension><nonFilteredFileExtension>png</nonFilteredFileExtension></nonFilteredFileExtensions>
</configuration>
<executions>
<execution>
<id>process-resources-resources</id>
<phase>process-resources</phase>
<goals><goal>resources</goal></goals>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions><nonFilteredFileExtension>p12</nonFilteredFileExtension><nonFilteredFileExtension>png</nonFilteredFileExtension></nonFilteredFileExtensions>
</configuration>
</execution>
</executions>
</plugin>mp158: Git Commit Id für Audit und Betrieb dokumentieren
Konfigurationsbeispiel
<plugin>
<groupId>io.github.git-commit-id</groupId>
<artifactId>git-commit-id-maven-plugin</artifactId>
<version>9.0.1</version>
<configuration>
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<includeOnlyProperties><includeOnlyProperty>git.commit.id.abbrev</includeOnlyProperty><includeOnlyProperty>git.branch</includeOnlyProperty></includeOnlyProperties>
</configuration>
<executions>
<execution>
<id>initialize-revision</id>
<phase>initialize</phase>
<goals><goal>revision</goal></goals>
</execution>
</executions>
</plugin>mp159: Deploy für lokale und CI-Builds trennen
Konfigurationsbeispiel
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.1.4</version>
<configuration>
<skip>false</skip>
<outputDirectory>${project.build.directory}/generated</outputDirectory>
</configuration>
<executions>
<execution>
<id>verify-run</id>
<phase>verify</phase>
<goals><goal>run</goal></goals>
</execution>
</executions>
</plugin>mp160: Javadoc für Cloud-Native-Deployments vorbereiten
Konfigurationsbeispiel
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.11.2</version>
<configuration>
<source>21</source>
<doclint>all,-missing</doclint>
<failOnError>true</failOnError>
</configuration>
<executions>
<execution>
<id>verify-jar</id>
<phase>verify</phase>
<goals><goal>jar</goal></goals>
</execution>
</executions>
</plugin>mp161: Source im Parent-POM zentralisieren
Konfigurationsbeispiel
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<attach>true</attach>
<skipSource>${source.skip}</skipSource>
</configuration>
<executions>
<execution>
<id>verify-jar-no-fork</id>
<phase>verify</phase>
<goals><goal>jar-no-fork</goal></goals>
</execution>
</executions>
</plugin>mp162: Assembly mit Profilen kontrollieren
Konfigurationsbeispiel
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.7.1</version>
<configuration>
<descriptors><descriptor>src/assembly/runtime.xml</descriptor></descriptors>
<finalName>${project.artifactId}-${project.version}</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>package-single</id>
<phase>package</phase>
<goals><goal>single</goal></goals>
</execution>
</executions>
</plugin>mp163: Gpg für große Teams standardisieren
Konfigurationsbeispiel
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.8</version>
<configuration>
<skip>${gpg.skip}</skip>
<gpgArguments><arg>--batch</arg></gpgArguments>
</configuration>
<executions>
<execution>
<id>verify-sign</id>
<phase>verify</phase>
<goals><goal>sign</goal></goals>
</execution>
</executions>
</plugin>mp164: Asciidoctor für Migrationen nachvollziehbar machen
Konfigurationsbeispiel
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<skip>false</skip>
<outputDirectory>${project.build.directory}/generated</outputDirectory>
</configuration>
<executions>
<execution>
<id>verify-run</id>
<phase>verify</phase>
<goals><goal>run</goal></goals>
</execution>
</executions>
</plugin>mp165: Plantuml als Build-Vertrag etablieren
Konfigurationsbeispiel
<plugin>
<groupId>com.github.jeluard</groupId>
<artifactId>plantuml-maven-plugin</artifactId>
<version>1.5.2</version>
<configuration>
<skip>false</skip>
<outputDirectory>${project.build.directory}/generated</outputDirectory>
</configuration>
<executions>
<execution>
<id>verify-run</id>
<phase>verify</phase>
<goals><goal>run</goal></goals>
</execution>
</executions>
</plugin>