blob: 022fe3c218734ae71a4cda37105d89ba05e7fefa [file] [log] [blame]
<?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">
<!-- ██ ██ █████ ██████ ███ ██ ██ ███ ██ ██████ ██
██ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██ ██ ██
██ █ ██ ███████ ██████ ██ ██ ██ ██ ██ ██ ██ ██ ███ ██
██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
███ ███ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██████ ██
`log4j-tools` project modules should use `log4j-tools-parent` as their parents, not this POM!
This POM constitutes the BOM to be imported by applications using `log4j-tools` project modules. -->
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.logging</groupId>
<artifactId>logging-parent</artifactId>
<version>8</version>
</parent>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-tools-bom</artifactId>
<packaging>pom</packaging>
<version>${revision}</version>
<modules>
<!-- the parent POM must come first: -->
<module>log4j-tools-parent</module>
<!-- Modules here must have a corresponding entry in `dependencyManagement > dependencies` block below! -->
<module>log4j-changelog</module>
<module>log4j-changelog-maven-plugin</module>
</modules>
<properties>
<!-- project version -->
<revision>0.3.0</revision>
<!-- `minimalJavaBuildVersion` is employed by `org.apache:apache`, which is the parent of `org.apache.logging:logging-parent`, which is the parent of 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>
<!-- plugin versions -->
<flatten-maven-plugin.version>1.3.0</flatten-maven-plugin.version>
<maven-deploy-plugin.version>3.0.0</maven-deploy-plugin.version>
<sign-maven-plugin.version>1.0.1</sign-maven-plugin.version>
</properties>
<!-- `dependencyManagement` must only contain `log4j-tools` modules and nothing else!
Modules here must have a corresponding entry in `modules` block above! -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-changelog</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-changelog-maven-plugin</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>${flatten-maven-plugin.version}</version>
<configuration>
<!-- Setting `outputDirectory` to `project.build.directory`, which is cleaned by `default-clean` execution of `clean:clean`.
This makes `flatten:clean` redundant. -->
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- BOMs should ideally _only_ contain dependencies for modules of the project.
No invasive properties or plugin/dependency management – either from the BOM itself or its parent.
The following `flatten-maven-plugin` exactly performs that trimming operation. -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>${flatten-maven-plugin.version}</version>
<inherited>false</inherited>
<executions>
<execution>
<id>flatten-bom</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
<configuration>
<flattenMode>bom</flattenMode>
<!-- POM `ElementHandling` is pretty cryptic: https://www.mojohaus.org/flatten-maven-plugin/apidocs/org/codehaus/mojo/flatten/ElementHandling.html
Trial-and-error has shown that we should use either `remove` or `interpolate`.
`remove` simply removes the element.
`interpolate` takes the element from the original POM with variables interpolated.
Avoid using `resolve`, which uses the effective POM where inherited changes from the parent are also incorporated. -->
<pomElements>
<properties>remove</properties>
<repositories>remove</repositories>
<distributionManagement>remove</distributionManagement>
<dependencyManagement>interpolate</dependencyManagement>
</pomElements>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>release</id>
<properties>
<deployAtEnd>true</deployAtEnd>
<installAtEnd>true</installAtEnd>
<skipTests>true</skipTests>
<spotbugs.skip>true</spotbugs.skip>
<spotless.check.skip>true</spotless.check.skip>
</properties>
<build>
<defaultGoal>deploy</defaultGoal>
<plugins>
<plugin>
<groupId>org.simplify4u.plugins</groupId>
<artifactId>sign-maven-plugin</artifactId>
<version>${sign-maven-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<distributionManagement>
<!-- `repository` from parent `org.apache.logging:logging-parent` (id: `apache.releases.https`) -->
<!-- `snapshotRepository` from parent `org.apache.logging:logging-parent` (id: `apache.snapshots.https`) -->
</distributionManagement>
<scm>
<url>https://github.com/apache/logging-log4j-tools</url>
<connection>scm:git:git@github.com:apache/logging-log4j-tools.git</connection>
<developerConnection>scm:git:git@github.com:apache/logging-log4j-tools.git</developerConnection>
<tag>HEAD</tag>
</scm>
<url>https://github.com/apache/logging-log4j-tools</url>
<ciManagement>
<system>GitHub Actions</system>
<url>https://github.com/apache/logging-log4j-tools/actions</url>
</ciManagement>
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/apache/logging-log4j-tools/issues</url>
</issueManagement>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
<comments>A business-friendly OSS license</comments>
</license>
</licenses>
<organization>
<name>Apache Software Foundation</name>
<url>https://apache.org</url>
</organization>
<inceptionYear>2022</inceptionYear>
<developers>
<developer>
<id>rgoers</id>
<name>Ralph Goers</name>
<email>rgoers@apache.org</email>
<organization>Nextiva</organization>
<roles>
<role>PMC Member</role>
</roles>
<timezone>America/Phoenix</timezone>
</developer>
<developer>
<id>vy</id>
<name>Volkan Yazıcı</name>
<email>vy@apache.org</email>
<roles>
<role>PMC Member</role>
</roles>
<timezone>Europe/Amsterdam</timezone>
</developer>
<developer>
<id>pkarwasz</id>
<name>Piotr P. Karwasz</name>
<email>pkarwasz@apache.org</email>
<roles>
<role>PMC Member</role>
</roles>
<timezone>Europe/Warsaw</timezone>
</developer>
</developers>
</project>