| <?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 distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| https://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/maven-v4_0_0.xsd"> |
| |
| <modelVersion>4.0.0</modelVersion> |
| |
| <parent> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-tools-bom</artifactId> |
| <version>${revision}</version> |
| </parent> |
| |
| <artifactId>log4j-tools-parent</artifactId> |
| <packaging>pom</packaging> |
| <version>${revision}</version> |
| |
| <properties> |
| |
| <!-- project properties --> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <project.build.resourceEncoding>UTF-8</project.build.resourceEncoding> |
| <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
| |
| <!-- `minimalJavaBuildVersion` is employed by `org.apache:apache`, which parents `org.apache.logging:logging-parent`, which parents `org.apache.logging.log4j:log4j-tools-bom`, which parents us. |
| `minimalJavaBuildVersion` is used for enforcing the compiler version. |
| We will use `java.version` to enforce the target JVM byte code, which is 8. --> |
| <minimalJavaBuildVersion>[17,18)</minimalJavaBuildVersion> |
| <java.version>8</java.version> |
| |
| <!-- `project.build.outputTimestamp` is required for reproducible builds: https://maven.apache.org/guides/mini/guide-reproducible-builds.html --> |
| <project.build.outputTimestamp>0</project.build.outputTimestamp> |
| |
| <!-- disable `maven-site-plugin`--> |
| <maven.site.skip>true</maven.site.skip> |
| <maven.site.deploy.skip>true</maven.site.deploy.skip> |
| |
| <!-- dependency versions --> |
| <assertj.version>3.24.2</assertj.version> |
| <commons-io.version>2.11.0</commons-io.version> |
| <freemarker.version>2.3.32</freemarker.version> |
| <junit.version>5.9.2</junit.version> |
| <maven-plugin.version>3.8.1</maven-plugin.version> |
| <maven-plugin-api.version>3.6.3</maven-plugin-api.version> |
| <spotbugs.version>4.7.3</spotbugs.version> |
| |
| <!-- plugin versions --> |
| <error-prone.version>2.18.0</error-prone.version> |
| <findsecbugs-plugin.version>1.12.0</findsecbugs-plugin.version> |
| <spotbugs-maven-plugin.version>4.7.3.3</spotbugs-maven-plugin.version> |
| <spotless-maven-plugin.version>2.36.0</spotless-maven-plugin.version> |
| |
| </properties> |
| |
| <dependencyManagement> |
| <dependencies> |
| |
| <dependency> |
| <groupId>org.assertj</groupId> |
| <artifactId>assertj-core</artifactId> |
| <version>${assertj.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>commons-io</groupId> |
| <artifactId>commons-io</artifactId> |
| <version>${commons-io.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.freemarker</groupId> |
| <artifactId>freemarker</artifactId> |
| <version>${freemarker.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-engine</artifactId> |
| <version>${junit.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.maven.plugin-tools</groupId> |
| <artifactId>maven-plugin-annotations</artifactId> |
| <version>${maven-plugin.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.maven</groupId> |
| <artifactId>maven-plugin-api</artifactId> |
| <version>${maven-plugin-api.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.github.spotbugs</groupId> |
| <artifactId>spotbugs-annotations</artifactId> |
| <version>${spotbugs.version}</version> |
| </dependency> |
| |
| </dependencies> |
| </dependencyManagement> |
| |
| <build> |
| |
| <pluginManagement> |
| <plugins> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-plugin-plugin</artifactId> |
| <version>${maven-plugin.version}</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>com.github.spotbugs</groupId> |
| <artifactId>spotbugs-maven-plugin</artifactId> |
| <version>${spotbugs-maven-plugin.version}</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>com.diffplug.spotless</groupId> |
| <artifactId>spotless-maven-plugin</artifactId> |
| <version>${spotless-maven-plugin.version}</version> |
| </plugin> |
| |
| </plugins> |
| </pluginManagement> |
| |
| <plugins> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <configuration> |
| <release>${java.version}</release> |
| <encoding>${project.build.sourceEncoding}</encoding> |
| <compilerArgs> |
| <arg>-Xlint:all</arg> |
| <arg>-XDcompilePolicy=simple</arg> |
| <arg>-Xplugin:ErrorProne</arg> |
| </compilerArgs> |
| <annotationProcessorPaths> |
| <path> |
| <groupId>com.google.errorprone</groupId> |
| <artifactId>error_prone_core</artifactId> |
| <version>${error-prone.version}</version> |
| </path> |
| </annotationProcessorPaths> |
| </configuration> |
| </plugin> |
| |
| <!-- Resolves `revision` property prior to deployment. |
| Skipping this step would result in artifacts not consumable by Maven. |
| https://maven.apache.org/maven-ci-friendly.html#install-deploy --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>flatten-maven-plugin</artifactId> |
| <version>${flatten-maven-plugin.version}</version> |
| <configuration> |
| <updatePomFile>true</updatePomFile> |
| <flattenMode>resolveCiFriendliesOnly</flattenMode> |
| </configuration> |
| <executions> |
| <execution> |
| <id>flatten-revision</id> |
| <phase>process-resources</phase> |
| <goals> |
| <goal>flatten</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- Apache RAT (Release Audit Tool) check to verify licenses. |
| `apache-rat-plugin`: https://creadur.apache.org/rat/apache-rat-plugin/ |
| Release Audit Tool: https://creadur.apache.org/rat/index.html --> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <configuration> |
| <consoleOutput>true</consoleOutput> |
| <excludes> |
| <exclude>**/target/**/*</exclude> |
| <exclude>.java-version</exclude> |
| <exclude>.mvn/jvm.config</exclude> |
| <exclude>**/*.txt</exclude> |
| <!-- IntelliJ IDEA files: --> |
| <exclude>.idea/**/*</exclude> |
| <exclude>**/*.iml</exclude> |
| <!-- License headers in GitHub templates pollute the prompt displayed to the user: --> |
| <exclude>.github/ISSUE_TEMPLATE/*.md</exclude> |
| <exclude>.github/pull_request_template.md</exclude> |
| </excludes> |
| </configuration> |
| <executions> |
| <execution> |
| <phase>verify</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- Ensure that version for each dependency resolved during a build, is equal to or higher than all transitive dependency declarations. |
| A failure here requires adding the dependency to the dependency management. --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>enforce-upper-bound-deps</id> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <requireUpperBoundDeps/> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- Configuration here must match the one in `.editorconfig`! --> |
| <plugin> |
| <groupId>com.diffplug.spotless</groupId> |
| <artifactId>spotless-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>default-spotless</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <java> |
| <licenseHeader> |
| <file>${maven.multiModuleProjectDirectory}/spotless-license-header.txt</file> |
| </licenseHeader> |
| <trimTrailingWhitespace/> |
| <endWithNewline/> |
| <removeUnusedImports/> |
| <indent> |
| <spaces>true</spaces> |
| <spacesPerTab>4</spacesPerTab> |
| </indent> |
| <importOrder> |
| <order>java,javax,org.apache.logging,,\#java,\#javax,\#org.apache.logging,\#</order> |
| </importOrder> |
| </java> |
| <lineEndings>UNIX</lineEndings> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>com.github.spotbugs</groupId> |
| <artifactId>spotbugs-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>default-spotbugs</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <plugins> |
| <plugin> |
| <groupId>com.h3xstream.findsecbugs</groupId> |
| <artifactId>findsecbugs-plugin</artifactId> |
| <version>${findsecbugs-plugin.version}</version> |
| </plugin> |
| </plugins> |
| </configuration> |
| </plugin> |
| |
| </plugins> |
| |
| </build> |
| |
| </project> |