airbase
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>io.airlift</groupId> <artifactId>airbase</artifactId> <version>257</version> </dependency>
<?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"> <modelVersion>4.0.0</modelVersion> <groupId>io.airlift</groupId> <artifactId>airbase</artifactId> <version>257</version> <packaging>pom</packaging> <name>airbase</name> <description>Base POM for Airlift</description> <url>https://github.com/airlift/airbase</url> <inceptionYear>2013</inceptionYear> <licenses> <license> <name>Apache License 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0</url> <distribution>repo</distribution> </license> </licenses> <developers> <!-- see git log --> <developer> <name>Airlift</name> </developer> </developers> <scm> <connection>scm:git:git@github.com/airlift/airbase.git</connection> <developerConnection>scm:git:git@github.com:airlift/airbase.git</developerConnection> <tag>257</tag> <url>https://github.com/airlift/airbase</url> </scm> <distributionManagement> <repository> <id>${air.repository.release.id}</id> <name>${air.repository.release.name}</name> <url>${air.repository.release.url}</url> </repository> <snapshotRepository> <id>${air.repository.snapshot.id}</id> <name>${air.repository.snapshot.name}</name> <url>${air.repository.snapshot.url}</url> </snapshotRepository> </distributionManagement> <properties> <!-- see http://docs.codehaus.org/display/MAVENUSER/POM+Element+for+Source+File+Encoding --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.targetJdk>8</project.build.targetJdk> <project.report.outputEncoding>UTF-8</project.report.outputEncoding> <project.report.inputEncoding>UTF-8</project.report.inputEncoding> <project.build.outputTimestamp>2025-05-02T15:28:24Z</project.build.outputTimestamp> <!-- airlift build specific options are prefixed air.build. --> <!-- Default jvm size for compiler, tests etc. --> <air.build.jvmsize>1024m</air.build.jvmsize> <!-- whether a release:perform automatically pushes the created files and tags to --> <!-- the upstream repository. Default is no. --> <air.release.push-changes>false</air.release.push-changes> <air.release.auto-version-submodules>true</air.release.auto-version-submodules> <air.release.release-profiles>oss-release</air.release.release-profiles> <air.release.preparation-goals>clean install</air.release.preparation-goals> <air.release.tag-name-format>@{project.version}</air.release.tag-name-format> <!-- define the thread count for parallel tests. --> <air.test.thread-count>1</air.test.thread-count> <!-- define the parallel mode for tests. --> <!-- Check https://testng.org/doc/documentation-main.html#parallel-running for the possible values of this setting. --> <!-- At the time of this writing, the supported values for parallelism in testng for maven-surefire-plugin are: classes, methods. --> <air.test.parallel /> <!-- define the JVM timezone to use when running tests. Default is 'UTC. --> <air.test.timezone>UTC</air.test.timezone> <!-- define the JVM language to use when running tests. Default is 'en'. --> <air.test.language>en</air.test.language> <!-- define the JVM region to use when running tests. Default is 'US'. --> <air.test.region>US</air.test.region> <!-- define the JVM size for forked tests. Defaults to build JVM size. --> <air.test.jvmsize>${air.build.jvmsize}</air.test.jvmsize> <!-- provide additional options for test JVM --> <air.test.jvm.additional-arguments /> <!-- Lint mode for Javadoc. Defaults to 'all'. --> <air.javadoc.lint>all</air.javadoc.lint> <!-- Target Java version for Modernizer --> <air.modernizer.java-version>${project.build.targetJdk}</air.modernizer.java-version> <!-- Run compiler in a separate process --> <air.compiler.fork>false</air.compiler.fork> <!-- compiler warnings treated as errors --> <air.compiler.fail-warnings>false</air.compiler.fail-warnings> <!-- enable compiler preview language features --> <air.compiler.enable-preview>false</air.compiler.enable-preview> <!-- Controls all the checkers run when building the project. --> <!-- Can be activated with -Dair.check.skip-all=true on the command line. --> <air.check.skip-all>false</air.check.skip-all> <!-- Controls the basic checkers run when building the project. --> <air.check.skip-basic>${air.check.skip-all}</air.check.skip-basic> <!-- Controls the extended checkers run when building the project. --> <air.check.skip-extended>${air.check.skip-all}</air.check.skip-extended> <!-- basic checks --> <air.check.skip-enforcer>${air.check.skip-basic}</air.check.skip-enforcer> <air.check.skip-dependency>${air.check.skip-basic}</air.check.skip-dependency> <air.check.skip-duplicate-finder>${air.check.skip-basic}</air.check.skip-duplicate-finder> <air.check.skip-dependency-scope>${air.check.skip-basic}</air.check.skip-dependency-scope> <!-- extended checks --> <air.check.skip-spotbugs>${air.check.skip-extended}</air.check.skip-spotbugs> <air.check.skip-pmd>${air.check.skip-extended}</air.check.skip-pmd> <air.check.skip-license>${air.check.skip-extended}</air.check.skip-license> <air.check.skip-jacoco>${air.check.skip-extended}</air.check.skip-jacoco> <air.check.skip-modernizer>${air.check.skip-extended}</air.check.skip-modernizer> <air.check.skip-checkstyle>${air.check.skip-extended}</air.check.skip-checkstyle> <!-- all checks --> <air.check.fail-all>true</air.check.fail-all> <air.check.fail-basic>${air.check.fail-all}</air.check.fail-basic> <air.check.fail-extended>${air.check.fail-all}</air.check.fail-extended> <!-- basic checks --> <air.check.fail-enforcer>${air.check.fail-basic}</air.check.fail-enforcer> <air.check.fail-dependency>${air.check.fail-basic}</air.check.fail-dependency> <air.check.fail-duplicate-finder>${air.check.fail-basic}</air.check.fail-duplicate-finder> <air.check.fail-dependency-scope>${air.check.fail-basic}</air.check.fail-dependency-scope> <!-- extended checks --> <air.check.fail-spotbugs>${air.check.fail-extended}</air.check.fail-spotbugs> <air.check.fail-pmd>${air.check.fail-extended}</air.check.fail-pmd> <air.check.fail-license>${air.check.fail-extended}</air.check.fail-license> <air.check.fail-modernizer>${air.check.fail-extended}</air.check.fail-modernizer> <air.check.fail-checkstyle>${air.check.fail-basic}</air.check.fail-checkstyle> <!-- minimum maven version to build --> <air.maven.version>3.9.8</air.maven.version> <!-- minimum Java version to build --> <air.java.version>17</air.java.version> <!-- In Multimodule builds, override this to point at the parent directory for e.g. the license resources. --> <!-- See http://stackoverflow.com/questions/1012402/maven2-property-that-indicates-the-parent-directory --> <air.main.basedir>${project.basedir}</air.main.basedir> <!-- ${argLine} is used by Jacoco to store commands to enable its agent, and then used in Surefire configuration. When Jacoco is not enabled, it will stay empty, otherwise it will be overwritten. --> <argLine /> <!-- Plugin versions, keep sorted --> <dep.plugin.assembly.version>3.7.1</dep.plugin.assembly.version> <dep.plugin.build-helper.version>3.6.0</dep.plugin.build-helper.version> <dep.plugin.checkstyle.version>3.6.0</dep.plugin.checkstyle.version> <dep.plugin.clean.version>3.4.1</dep.plugin.clean.version> <dep.plugin.commit-id.version>9.0.1</dep.plugin.commit-id.version> <dep.plugin.compiler.version>3.14.0</dep.plugin.compiler.version> <dep.plugin.dependency.version>3.8.1</dep.plugin.dependency.version> <dep.plugin.dependency-scope.version>1.0.3</dep.plugin.dependency-scope.version> <dep.plugin.deploy.version>3.1.4</dep.plugin.deploy.version> <dep.plugin.duplicate-finder.version>2.0.1</dep.plugin.duplicate-finder.version> <dep.plugin.enforcer.version>3.5.0</dep.plugin.enforcer.version> <dep.plugin.enforcer-extra.version>1.10.0</dep.plugin.enforcer-extra.version> <dep.plugin.gpg.version>3.2.7</dep.plugin.gpg.version> <dep.plugin.install.version>3.1.4</dep.plugin.install.version> <dep.plugin.jacoco.version>0.8.13</dep.plugin.jacoco.version> <dep.plugin.jar.version>3.4.2</dep.plugin.jar.version> <dep.plugin.javadoc.version>3.11.2</dep.plugin.javadoc.version> <dep.plugin.license.version>5.0.0</dep.plugin.license.version> <dep.plugin.modernizer.version>3.1.0</dep.plugin.modernizer.version> <dep.plugin.pmd-runtime.version>7.13.0</dep.plugin.pmd-runtime.version> <dep.plugin.pmd.version>3.26.0</dep.plugin.pmd.version> <dep.plugin.release.version>3.1.1</dep.plugin.release.version> <dep.plugin.resources.version>3.3.1</dep.plugin.resources.version> <dep.plugin.restrict-imports.version>2.6.1</dep.plugin.restrict-imports.version> <dep.plugin.scm.version>2.1.0</dep.plugin.scm.version> <dep.plugin.shade.version>3.6.0</dep.plugin.shade.version> <dep.plugin.site.version>3.21.0</dep.plugin.site.version> <dep.plugin.sortpom.version>4.0.0</dep.plugin.sortpom.version> <dep.plugin.source.version>3.3.1</dep.plugin.source.version> <dep.plugin.spotbugs.version>4.9.3.0</dep.plugin.spotbugs.version> <dep.plugin.surefire.version>3.5.3</dep.plugin.surefire.version> <!-- Packaging for the tarball deployment --> <dep.packaging.version>333</dep.packaging.version> <!-- Dependency versions, keep sorted --> <dep.asm.version>9.8</dep.asm.version> <dep.assertj-core.version>3.27.3</dep.assertj-core.version> <dep.byte-buddy.version>1.17.5</dep.byte-buddy.version> <dep.checkstyle.version>10.23.1</dep.checkstyle.version> <dep.errorprone.version>2.38.0</dep.errorprone.version> <dep.guava.version>33.4.8-jre</dep.guava.version> <dep.guice.version>7.0.0</dep.guice.version> <dep.hibernate-validator.version>8.0.2.Final</dep.hibernate-validator.version> <dep.jackson.version>2.18.3</dep.jackson.version> <dep.jakarta.annotation-api.version>3.0.0</dep.jakarta.annotation-api.version> <dep.jakarta.inject-api.version>2.0.1</dep.jakarta.inject-api.version> <dep.jakarta.rs-ws-api.version>3.1.0</dep.jakarta.rs-ws-api.version> <dep.jakarta.servlet-api.version>6.0.0</dep.jakarta.servlet-api.version> <dep.jakarta.validation-api.version>3.1.1</dep.jakarta.validation-api.version> <dep.jakarta.xml-bind-api.version>4.0.2</dep.jakarta.xml-bind-api.version> <dep.jetty.version>12.0.20</dep.jetty.version> <dep.jmh.version>1.37</dep.jmh.version> <dep.jmxutils.version>1.26</dep.jmxutils.version> <dep.joda.version>2.14.0</dep.joda.version> <dep.jsr305.version>3.0.2</dep.jsr305.version> <!-- junit and junit-platform should have the same minor and patch versions --> <dep.junit.version>5.12.2</dep.junit.version> <dep.junit-platform.version>1.12.2</dep.junit-platform.version> <dep.kotlin.version>2.1.20</dep.kotlin.version> <dep.launcher.version>304</dep.launcher.version> <dep.logback.version>1.5.18</dep.logback.version> <dep.opentelemetry-instrumentation.version>2.15.0</dep.opentelemetry-instrumentation.version> <dep.opentelemetry-instrumentation-alpha.version>2.15.0-alpha</dep.opentelemetry-instrumentation-alpha.version> <dep.opentelemetry-semconv.version>1.32.0</dep.opentelemetry-semconv.version> <dep.opentelemetry-semconv-incubating.version>1.32.0-alpha</dep.opentelemetry-semconv-incubating.version> <dep.opentelemetry.version>1.49.0</dep.opentelemetry.version> <dep.opentelemetry-alpha.version>1.49.0-alpha</dep.opentelemetry-alpha.version> <dep.slf4j.version>2.0.17</dep.slf4j.version> <dep.slice.version>2.3</dep.slice.version> <dep.spotbugs-annotations.version>4.9.3</dep.spotbugs-annotations.version> <dep.testng.version>6.10</dep.testng.version> <!-- license headers --> <air.license.owner>${project.organization.name}</air.license.owner> <air.license.default-value>Copyright (C) ${project.inceptionYear} ${air.license.owner}</air.license.default-value> <air.license.ensure-match>Copyright \(C\) \d{4} .+</air.license.ensure-match> <air.license.header-file>license/apache-header.txt</air.license.header-file> <air.license.skip-existing-headers>false</air.license.skip-existing-headers> <!-- Checkstyle --> <air.checkstyle.config-file>checkstyle/airbase-checks.xml</air.checkstyle.config-file> <!-- Readme for launcher --> <air.readme.file>README.txt</air.readme.file> <air.readme.type>txt</air.readme.type> <!-- Properties for controlling distributionManagement --> <air.repository.snapshot.id>ossrh</air.repository.snapshot.id> <air.repository.snapshot.name>Sonatype Nexus Snapshots</air.repository.snapshot.name> <air.repository.snapshot.url>https://oss.sonatype.org/content/repositories/snapshots</air.repository.snapshot.url> <air.repository.release.id>ossrh</air.repository.release.id> <air.repository.release.name>Sonatype Release Snapshots</air.repository.release.name> <air.repository.release.url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</air.repository.release.url> </properties> <!-- The following dependency should be the same everywhere. --> <dependencyManagement> <dependencies> <!-- jackson --> <dependency> <groupId>com.fasterxml.jackson</groupId> <artifactId>jackson-bom</artifactId> <version>${dep.jackson.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- OpenTelemetry --> <dependency> <groupId>io.opentelemetry</groupId> <artifactId>opentelemetry-bom</artifactId> <version>${dep.opentelemetry.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.opentelemetry</groupId> <artifactId>opentelemetry-bom-alpha</artifactId> <version>${dep.opentelemetry-alpha.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.opentelemetry.instrumentation</groupId> <artifactId>opentelemetry-instrumentation-bom</artifactId> <version>${dep.opentelemetry-instrumentation.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.opentelemetry.instrumentation</groupId> <artifactId>opentelemetry-instrumentation-bom-alpha</artifactId> <version>${dep.opentelemetry-instrumentation-alpha.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-bom</artifactId> <version>${dep.assertj-core.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-bom</artifactId> <version>${dep.jetty.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.eclipse.jetty.ee10</groupId> <artifactId>jetty-ee10-bom</artifactId> <version>${dep.jetty.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- Kotlin --> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-bom</artifactId> <version>${dep.kotlin.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.junit</groupId> <artifactId>junit-bom</artifactId> <version>${dep.junit.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${dep.logback.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${dep.logback.version}</version> </dependency> <!-- FindBugs / SpotBugs --> <dependency> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-annotations</artifactId> <version>${dep.spotbugs-annotations.version}</version> </dependency> <!-- JSR-305 --> <dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>${dep.jsr305.version}</version> </dependency> <!-- Error Prone --> <dependency> <groupId>com.google.errorprone</groupId> <artifactId>error_prone_annotations</artifactId> <version>${dep.errorprone.version}</version> </dependency> <!-- guava --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>${dep.guava.version}</version> <exclusions> <!-- this empty dependency is a hack and not needed --> <exclusion> <groupId>com.google.guava</groupId> <artifactId>listenablefuture</artifactId> </exclusion> </exclusions> </dependency> <!-- Google Guice --> <dependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> <version>${dep.guice.version}</version> </dependency> <dependency> <groupId>com.google.inject.extensions</groupId> <artifactId>guice-assistedinject</artifactId> <version>${dep.guice.version}</version> </dependency> <dependency> <groupId>com.google.inject.extensions</groupId> <artifactId>guice-servlet</artifactId> <version>${dep.guice.version}</version> </dependency> <dependency> <groupId>com.google.inject.extensions</groupId> <artifactId>guice-throwingproviders</artifactId> <version>${dep.guice.version}</version> </dependency> <dependency> <groupId>io.airlift</groupId> <artifactId>slice</artifactId> <version>${dep.slice.version}</version> </dependency> <dependency> <groupId>io.opentelemetry.semconv</groupId> <artifactId>opentelemetry-semconv</artifactId> <version>${dep.opentelemetry-semconv.version}</version> </dependency> <dependency> <groupId>io.opentelemetry.semconv</groupId> <artifactId>opentelemetry-semconv-incubating</artifactId> <version>${dep.opentelemetry-semconv-incubating.version}</version> </dependency> <dependency> <groupId>jakarta.annotation</groupId> <artifactId>jakarta.annotation-api</artifactId> <version>${dep.jakarta.annotation-api.version}</version> </dependency> <dependency> <groupId>jakarta.inject</groupId> <artifactId>jakarta.inject-api</artifactId> <version>${dep.jakarta.inject-api.version}</version> </dependency> <!-- misc stuff --> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>${dep.jakarta.servlet-api.version}</version> </dependency> <dependency> <groupId>jakarta.validation</groupId> <artifactId>jakarta.validation-api</artifactId> <version>${dep.jakarta.validation-api.version}</version> </dependency> <dependency> <groupId>jakarta.ws.rs</groupId> <artifactId>jakarta.ws.rs-api</artifactId> <version>${dep.jakarta.rs-ws-api.version}</version> </dependency> <!-- xml bind --> <dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> <version>${dep.jakarta.xml-bind-api.version}</version> </dependency> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>${dep.joda.version}</version> </dependency> <dependency> <groupId>net.bytebuddy</groupId> <artifactId>byte-buddy</artifactId> <version>${dep.byte-buddy.version}</version> </dependency> <!-- Modernizer --> <dependency> <groupId>org.gaul</groupId> <artifactId>modernizer-maven-annotations</artifactId> <version>${dep.plugin.modernizer.version}</version> </dependency> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>${dep.hibernate-validator.version}</version> </dependency> <!-- jmh --> <dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-core</artifactId> <version>${dep.jmh.version}</version> </dependency> <dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-generator-annprocess</artifactId> <version>${dep.jmh.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${dep.slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <version>${dep.slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>${dep.slf4j.version}</version> </dependency> <!-- logging --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${dep.slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-ext</artifactId> <version>${dep.slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> <version>${dep.slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-nop</artifactId> <version>${dep.slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>${dep.slf4j.version}</version> </dependency> <!-- Testing --> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>${dep.testng.version}</version> <exclusions> <exclusion> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> </exclusion> <exclusion> <groupId>junit</groupId> <artifactId>junit</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.weakref</groupId> <artifactId>jmxutils</artifactId> <version>${dep.jmxutils.version}</version> </dependency> </dependencies> </dependencyManagement> <repositories> <repository> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> <id>sonatype-nexus-snapshots</id> <name>Sonatype Nexus Snapshots</name> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> <id>sonatype-nexus-snapshots</id> <name>Sonatype Nexus Snapshots</name> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </pluginRepository> </pluginRepositories> <build> <pluginManagement> <plugins> <plugin> <groupId>com.github.ekryd.sortpom</groupId> <artifactId>sortpom-maven-plugin</artifactId> <version>${dep.plugin.sortpom.version}</version> <configuration> <createBackupFile>false</createBackupFile> <nrOfIndentSpace>4</nrOfIndentSpace> <sortModules>true</sortModules> <sortDependencies>scope,groupId,artifactId</sortDependencies> <sortDependencyExclusions>groupId,artifactId</sortDependencyExclusions> <spaceBeforeCloseEmptyElement>true</spaceBeforeCloseEmptyElement> <expandEmptyElements>false</expandEmptyElements> <verifyFailOn>Strict</verifyFailOn> <verifyFail>Stop</verifyFail> </configuration> <executions> <execution> <goals> <goal>verify</goal> </goals> <phase>validate</phase> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-scm-plugin</artifactId> <version>${dep.plugin.scm.version}</version> <configuration> <connectionType>developerConnection</connectionType> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>${dep.plugin.deploy.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>${dep.plugin.clean.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <version>${dep.plugin.install.version}</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>${dep.plugin.build-helper.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>${dep.plugin.enforcer.version}</version> <configuration> <skip>${air.check.skip-enforcer}</skip> <fail>${air.check.fail-enforcer}</fail> <failFast>false</failFast> <rules> <!-- The following dependencies are hazardous for builds. --> <bannedDependencies> <excludes> <!-- clashes with commons-logging:commons-logging --> <exclude>commons-logging:commons-logging-api</exclude> <!-- old versions of junit repackage hamcrest --> <exclude>junit:junit</exclude> <!-- use guava --> <exclude>com.google.collections:google-collections</exclude> <!-- but not the badly numbered ones... --> <exclude>com.google.guava:guava</exclude> <!-- the non-empty verison overlaps with classes in guava --> <exclude>com.google.guava:listenablefuture</exclude> <!-- Contains FindBugs annotations, JSR-305 and JCIP annotations --> <exclude>com.google.code.findbugs:annotations</exclude> <!-- use the newer Jetty version of the servlet API --> <exclude>javax.servlet:javax.servlet-api</exclude> <exclude>org.eclipse.jetty.orbit:javax.servlet</exclude> <!-- Renamed airlift modules --> <exclude>io.airlift:discovery-experimental</exclude> <exclude>io.airlift:event-experimental</exclude> <exclude>io.airlift:http-client-experimental</exclude> <exclude>io.airlift:jmx-http-experimental</exclude> <exclude>io.airlift:jmx-http-rpc-experimental</exclude> <exclude>io.airlift:rack-experimental</exclude> <exclude>io.airlift:rack-launcher-experimental</exclude> <exclude>io.airlift:rack-packaging-experimental</exclude> <exclude>io.airlift:rack-server-base-experimental</exclude> <!-- log4j2 versions < 2.15.0 are vulnerable to the Log4Shell RCE (CVE-2021-44228) --> <exclude>org.apache.logging.log4j:log4j-core:(,2.15.0)</exclude> </excludes> <includes> <!-- whitelist the well numbered guava releases --> <include>com.google.guava:guava:[10.0.1,)</include> <!-- newer versions of junit do not repackage hamcrest --> <include>junit:junit:[4.11,)</include> </includes> </bannedDependencies> <banDuplicatePomDependencyVersions /> <requireUpperBoundDeps /> <requireMavenVersion> <version>${air.maven.version}</version> </requireMavenVersion> <requireJavaVersion> <version>${air.java.version}</version> </requireJavaVersion> <enforceBytecodeVersion> <maxJdkVersion>${project.build.targetJdk}</maxJdkVersion> <ignoredScopes>test</ignoredScopes> <excludes> <exclude>org.eclipse.jetty:jetty-alpn-java-client</exclude> <exclude>org.eclipse.jetty:jetty-alpn-java-server</exclude> </excludes> </enforceBytecodeVersion> <requirePluginVersions> <message>Providing the plugin version explicitly makes the builds reproducible</message> </requirePluginVersions> <RestrictImports> <reason>Importing internal classes is not allowed</reason> <bannedImports> <bannedImport>jdk.internal.**</bannedImport> <bannedImport>jdk.nashorn.internal.**</bannedImport> <bannedImport>org.glassfish.jersey.internal.guava.**</bannedImport> <bannedImport>org.glassfish.jersey.internal.util.**</bannedImport> <bannedImport>jersey.repackaged.**</bannedImport> <bannedImport>org.weakref.jmx.internal.**</bannedImport> <bannedImport>**.$internal.**</bannedImport> </bannedImports> </RestrictImports> <RestrictImports> <reason>Importing shaded classes is not allowed</reason> <bannedImports> <bannedImport>**.shaded.com.google.**</bannedImport> <bannedImport>**.shaded.okhttp3.**</bannedImport> <bannedImport>**.shaded.org.apache.**</bannedImport> <bannedImport>org.testcontainers.shaded.**</bannedImport> </bannedImports> </RestrictImports> <RestrictImports> <reason>Use javax.annotation.Nullable instead of org.jetbrains.annotations.Nullable</reason> <bannedImports> <bannedImport>org.jetbrains.annotations.Nullable</bannedImport> </bannedImports> </RestrictImports> <RestrictImports> <reason>Not null is the default for the codebase and should not be annotated</reason> <bannedImports> <bannedImport>org.jetbrains.annotations.NotNull</bannedImport> </bannedImports> </RestrictImports> <RestrictImports> <reason>Use org.testng.Assert instead of org.testng.AssertJUnit</reason> <bannedImports> <bannedImport>org.testng.AssertJUnit</bannedImport> <bannedImport>org.testng.AssertJUnit.*</bannedImport> </bannedImports> </RestrictImports> <RestrictImports> <reason>These classes were introduced to overcome type inference issues in Java 8, but the regular org.assertj.core.api.Assertions works just fine and has a richer API</reason> <bannedImports> <bannedImport>org.assertj.core.api.AssertionsForClassTypes</bannedImport> <bannedImport>org.assertj.core.api.AssertionsForClassTypes.*</bannedImport> <bannedImport>org.assertj.core.api.AssertionsForInterfaceTypes</bannedImport> <bannedImport>org.assertj.core.api.AssertionsForInterfaceTypes.*</bannedImport> </bannedImports> </RestrictImports> <requireProfileIdsExist /> <requirePropertyDiverges> <property>project.description</property> </requirePropertyDiverges> </rules> </configuration> <dependencies> <dependency> <groupId>de.skuzzle.enforcer</groupId> <artifactId>restrict-imports-enforcer-rule</artifactId> <version>${dep.plugin.restrict-imports.version}</version> </dependency> <dependency> <groupId>org.codehaus.mojo</groupId> <artifactId>extra-enforcer-rules</artifactId> <version>${dep.plugin.enforcer-extra.version}</version> </dependency> </dependencies> <executions> <execution> <id>default</id> <goals> <goal>enforce</goal> </goals> <phase>validate</phase> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>${dep.plugin.dependency.version}</version> <configuration> <skip>${air.check.skip-dependency}</skip> <failOnWarning>${air.check.fail-dependency}</failOnWarning> <ignoreNonCompile>true</ignoreNonCompile> </configuration> <dependencies> <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> <version>${dep.asm.version}</version> </dependency> </dependencies> <executions> <execution> <id>default</id> <goals> <goal>analyze-only</goal> <goal>analyze-duplicate</goal> </goals> <phase>process-test-classes</phase> </execution> </executions> </plugin> <!-- Tweak the compiler to use more memory and use UTF-8 for the source code. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${dep.plugin.compiler.version}</version> <configuration> <source>${project.build.targetJdk}</source> <release>${project.build.targetJdk}</release> <encoding>${project.build.sourceEncoding}</encoding> <fork>${air.compiler.fork}</fork> <maxmem>${air.build.jvmsize}</maxmem> <failOnWarning>${air.compiler.fail-warnings}</failOnWarning> <showDeprecation>true</showDeprecation> <showWarnings>true</showWarnings> <parameters>true</parameters> <enablePreview>${air.compiler.enable-preview}</enablePreview> </configuration> <dependencies> <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> <version>${dep.asm.version}</version> </dependency> </dependencies> </plugin> <!-- Resource plugins should always use UTF-8 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>${dep.plugin.resources.version}</version> <configuration> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>${dep.plugin.assembly.version}</version> <configuration> <!-- must be true for jar-with-dependencies builds --> <appendAssemblyId>true</appendAssemblyId> <!-- Always use Posix tar mode. --> <tarLongFileMode>posix</tarLongFileMode> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${dep.plugin.surefire.version}</version> <configuration> <systemPropertyVariables> <sun.jnu.encoding>${project.build.sourceEncoding}</sun.jnu.encoding> <user.timezone>${air.test.timezone}</user.timezone> <java.awt.headless>true</java.awt.headless> <java.util.logging.SimpleFormatter.format>%1$tY-%1$tm-%1$tdT%1$tH:%1$tM:%1$tS.%1$tL%1$tz %4$s %5$s%6$s%n</java.util.logging.SimpleFormatter.format> </systemPropertyVariables> <trimStackTrace>false</trimStackTrace> <runOrder>random</runOrder> <failIfNoTests>true</failIfNoTests> <parallel>${air.test.parallel}</parallel> <threadCount>${air.test.thread-count}</threadCount> <!-- @{argLine} is for Jacoco: https://www.eclemma.org/jacoco/trunk/doc/prepare-agent-mojo.html --> <argLine> @{argLine} <!-- Pass the following properties directly to the JVM, because they are not passed correctly by Surefire: --> -Duser.language=${air.test.language} -Duser.region=${air.test.region} -Dfile.encoding=${project.build.sourceEncoding} -Xmx${air.test.jvmsize} -Xms${air.test.jvmsize} -XX:+ExitOnOutOfMemoryError -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow ${surefireEnablePreview} ${air.test.jvm.additional-arguments} </argLine> </configuration> <dependencies> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-engine</artifactId> <version>${dep.junit-platform.version}</version> </dependency> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-launcher</artifactId> <version>${dep.junit-platform.version}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>${dep.plugin.release.version}</version> <configuration> <releaseProfiles>${air.release.release-profiles}</releaseProfiles> <autoVersionSubmodules>${air.release.auto-version-submodules}</autoVersionSubmodules> <mavenExecutorId>forked-path</mavenExecutorId> <pushChanges>${air.release.push-changes}</pushChanges> <localCheckout>true</localCheckout> <preparationGoals>${air.release.preparation-goals}</preparationGoals> <tagNameFormat>${air.release.tag-name-format}</tagNameFormat> <useReleaseProfile>false</useReleaseProfile> <goals>deploy</goals> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${dep.plugin.javadoc.version}</version> <configuration> <quiet>true</quiet> <source>${project.build.targetJdk}</source> <encoding>${project.build.sourceEncoding}</encoding> <maxmemory>${air.build.jvmsize}</maxmemory> <doclint>${air.javadoc.lint}</doclint> <notimestamp>true</notimestamp> <additionalOptions>${surefireEnablePreview}</additionalOptions> </configuration> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> <!-- Always build a jar with the test classes --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>${dep.plugin.jar.version}</version> <configuration> <!-- do not build an empty jar if the project is e.g. a pom project --> <skipIfEmpty>true</skipIfEmpty> <archive> <manifest> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> <addClasspath>false</addClasspath> </manifest> <manifestEntries> <!-- This is actually the time when the commit was done --> <Build-Time>${git.commit.time}</Build-Time> <Git-Commit-Id>${git.commit.id}</Git-Commit-Id> <Implementation-Version>${git.commit.id.describe}</Implementation-Version> </manifestEntries> </archive> </configuration> <executions> <execution> <id>attach-tests</id> <goals> <goal>test-jar</goal> </goals> <phase>package</phase> </execution> </executions> </plugin> <plugin> <groupId>io.github.git-commit-id</groupId> <artifactId>git-commit-id-maven-plugin</artifactId> <version>${dep.plugin.commit-id.version}</version> <configuration> <!-- Include only properties used above to speed up build (https://github.com/git-commit-id/git-commit-id-maven-plugin/issues/462) --> <includeOnlyProperties> <includeOnlyProperty>\Qgit.commit.id</includeOnlyProperty> <includeOnlyProperty>\Qgit.commit.id.describe</includeOnlyProperty> <includeOnlyProperty>\Qgit.commit.time</includeOnlyProperty> </includeOnlyProperties> <dateFormat>yyyy-MM-dd'T'HH:mm:ssXXX</dateFormat> <dateFormatTimeZone>UTC</dateFormatTimeZone> <gitDescribe> <tags>true</tags> </gitDescribe> <injectAllReactorProjects>true</injectAllReactorProjects> </configuration> </plugin> <!-- bundle up source code into jars for both the main and the test sources --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>${dep.plugin.source.version}</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork</goal> <goal>test-jar-no-fork</goal> </goals> <phase>package</phase> </execution> </executions> </plugin> <plugin> <groupId>org.basepom.maven</groupId> <artifactId>duplicate-finder-maven-plugin</artifactId> <version>${dep.plugin.duplicate-finder.version}</version> <configuration> <skip>${air.check.skip-duplicate-finder}</skip> <failBuildInCaseOfConflict>${air.check.fail-duplicate-finder}</failBuildInCaseOfConflict> <exceptions> <!-- Well done, Apache... --> <exception> <conflictingDependencies> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils-core</artifactId> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> </dependency> </conflictingDependencies> <classes> <class>org.apache.commons.collections.ArrayStack</class> <class>org.apache.commons.collections.Buffer</class> <class>org.apache.commons.collections.BufferUnderflowException</class> <class>org.apache.commons.collections.FastHashMap</class> </classes> </exception> <exception> <conflictingDependencies> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils-core</artifactId> </dependency> </conflictingDependencies> <packages> <package>org.apache.commons.beanutils</package> </packages> </exception> </exceptions> <!-- Ruby is hopeless --> <ignoredDependencies> <dependency> <groupId>org.jruby</groupId> <artifactId>jruby-complete</artifactId> </dependency> </ignoredDependencies> <ignoredResourcePatterns> <ignoredResourcePattern>.*\.html</ignoredResourcePattern> <ignoredResourcePattern>META-INF/.*</ignoredResourcePattern> <ignoredResourcePattern>about_files/.*</ignoredResourcePattern> <ignoredResourcePattern>plugin\.properties</ignoredResourcePattern> <ignoredResourcePattern>.*\.java</ignoredResourcePattern> <ignoredResourcePattern>THIRD-PARTY</ignoredResourcePattern> </ignoredResourcePatterns> </configuration> <executions> <execution> <id>default</id> <goals> <goal>check</goal> </goals> <phase>process-test-classes</phase> </execution> </executions> </plugin> <plugin> <groupId>org.basepom.maven</groupId> <artifactId>dependency-scope-maven-plugin</artifactId> <version>${dep.plugin.dependency-scope.version}</version> <executions> <execution> <goals> <goal>check</goal> </goals> <configuration> <skip>${air.check.skip-dependency-scope}</skip> <fail>${air.check.fail-dependency-scope}</fail> </configuration> </execution> </executions> </plugin> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> <version>${dep.plugin.spotbugs.version}</version> <configuration> <skip>${air.check.skip-spotbugs}</skip> <jvmArgs>-Xmx${air.build.jvmsize}</jvmArgs> <failOnError>${air.check.fail-spotbugs}</failOnError> </configuration> <executions> <execution> <id>default</id> <goals> <goal>check</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <version>${dep.plugin.pmd.version}</version> <configuration> <skip>${air.check.skip-pmd}</skip> <failOnViolation>${air.check.fail-pmd}</failOnViolation> <targetJdk>${project.build.targetJdk}</targetJdk> <minimumTokens>100</minimumTokens> <excludes> <exclude>**/*Bean.java</exclude> <exclude>**/generated/*.java</exclude> </excludes> <excludeRoots> <excludeRoot>target/generated-sources/stubs</excludeRoot> </excludeRoots> <rulesets> <ruleset>/rulesets/java/basic.xml</ruleset> <ruleset>/rulesets/java/clone.xml</ruleset> <ruleset>/rulesets/java/finalizers.xml</ruleset> </rulesets> </configuration> <dependencies> <dependency> <groupId>net.sourceforge.pmd</groupId> <artifactId>pmd-core</artifactId> <version>${dep.plugin.pmd-runtime.version}</version> </dependency> <dependency> <groupId>net.sourceforge.pmd</groupId> <artifactId>pmd-java</artifactId> <version>${dep.plugin.pmd-runtime.version}</version> </dependency> <dependency> <groupId>net.sourceforge.pmd</groupId> <artifactId>pmd-javascript</artifactId> <version>${dep.plugin.pmd-runtime.version}</version> </dependency> <dependency> <groupId>net.sourceforge.pmd</groupId> <artifactId>pmd-jsp</artifactId> <version>${dep.plugin.pmd-runtime.version}</version> </dependency> </dependencies> <executions> <execution> <id>default</id> <goals> <goal>check</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> <version>${dep.plugin.license.version}</version> <configuration> <skip>${air.check.skip-license}</skip> <skipExistingHeaders>${air.license.skip-existing-headers}</skipExistingHeaders> <failIfMissing>${air.check.fail-license}</failIfMissing> <licenseSets> <licenseSet> <header>${air.license.header-file}</header> <headerSections> <headerSection> <key>COPYRIGHT_SECTION</key> <defaultValue>${air.license.default-value}</defaultValue> <ensureMatch>${air.license.ensure-match}</ensureMatch> <multiLineMatch>false</multiLineMatch> </headerSection> </headerSections> <excludes> <exclude>.*/**</exclude> <exclude>**/*.md</exclude> <exclude>**/*.sh</exclude> <exclude>**/*.txt</exclude> <exclude>**/*.thrift</exclude> <exclude>**/*.sql</exclude> <exclude>**/*.releaseBackup</exclude> <exclude>**/*.st</exclude> <exclude>**/*.raw</exclude> <exclude>**/*.ser</exclude> <exclude>**/*.html</exclude> <exclude>**/*.rst</exclude> <exclude>**/*.xml</exclude> <exclude>**/*.csv</exclude> <exclude>**/*.tsv</exclude> <exclude>**/*.properties</exclude> <exclude>**/src/license/**</exclude> <exclude>**/src/*/resources/**</exclude> </excludes> <includes> <include>src/**</include> </includes> </licenseSet> </licenseSets> <mapping> <java>SLASHSTAR_STYLE</java> <g>SLASHSTAR_STYLE</g> <g4>SLASHSTAR_STYLE</g4> </mapping> <properties> <inceptionYear>${project.inceptionYear}</inceptionYear> </properties> <strictCheck>true</strictCheck> <aggregate>true</aggregate> <useDefaultExcludes>true</useDefaultExcludes> <encoding>${project.build.sourceEncoding}</encoding> </configuration> <dependencies> <!-- This version must match the Airbase version. It will be updated by --> <!-- the Maven Release plugin. The "project.version" property cannot be --> <!-- used here as it will resolve to the version of the child project. --> <dependency> <groupId>io.airlift</groupId> <artifactId>airbase-policy</artifactId> <version>257</version> </dependency> </dependencies> <executions> <execution> <id>default</id> <goals> <goal>check</goal> </goals> <phase>validate</phase> </execution> </executions> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${dep.plugin.jacoco.version}</version> <configuration> <skip>${air.check.skip-jacoco}</skip> </configuration> <executions> <execution> <id>default</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <goals> <goal>report</goal> </goals> <phase>prepare-package</phase> </execution> </executions> </plugin> <plugin> <groupId>org.gaul</groupId> <artifactId>modernizer-maven-plugin</artifactId> <version>${dep.plugin.modernizer.version}</version> <configuration> <skip>${air.check.skip-modernizer}</skip> <failOnViolations>${air.check.fail-modernizer}</failOnViolations> <javaVersion>${air.modernizer.java-version}</javaVersion> </configuration> <dependencies> <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> <version>${dep.asm.version}</version> </dependency> </dependencies> <executions> <execution> <id>modernizer</id> <goals> <goal>modernizer</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>${dep.plugin.checkstyle.version}</version> <configuration> <skip>${air.check.skip-checkstyle}</skip> <failOnViolation>${air.check.fail-checkstyle}</failOnViolation> <includeTestSourceDirectory>true</includeTestSourceDirectory> <configLocation>${air.checkstyle.config-file}</configLocation> <excludes>**/module-info.java</excludes> </configuration> <dependencies> <dependency> <groupId>com.puppycrawl.tools</groupId> <artifactId>checkstyle</artifactId> <version>${dep.checkstyle.version}</version> </dependency> <!-- This version must match the Airbase version. It will be updated by --> <!-- the Maven Release plugin. The "project.version" property cannot be --> <!-- used here as it will resolve to the version of the child project. --> <dependency> <groupId>io.airlift</groupId> <artifactId>airbase-policy</artifactId> <version>257</version> </dependency> </dependencies> <executions> <execution> <id>checkstyle</id> <goals> <goal>check</goal> </goals> <phase>validate</phase> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>${dep.plugin.gpg.version}</version> <configuration> <useAgent>true</useAgent> </configuration> <executions> <execution> <id>sign-artifacts</id> <goals> <goal>sign</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>${dep.plugin.site.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>${dep.plugin.shade.version}</version> <dependencies> <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> <version>${dep.asm.version}</version> </dependency> </dependencies> </plugin> </plugins> </pluginManagement> <!-- This is the list of plugins used for the main build. --> <!-- Check plugins (except dependency-plugin) are enabled using profiles. --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> </plugin> <plugin> <groupId>io.github.git-commit-id</groupId> <artifactId>git-commit-id-maven-plugin</artifactId> <executions> <execution> <id>default</id> <goals> <goal>revision</goal> </goals> <phase>initialize</phase> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions> <execution> <id>surefire-enable-preview</id> <goals> <goal>bsh-property</goal> </goals> <phase>initialize</phase> <configuration> <properties> <property>surefireEnablePreview</property> </properties> <source>value = project.getProperties().getProperty("air.compiler.enable-preview"); surefireEnablePreview = Boolean.parseBoolean(value) ? "--enable-preview" : "";</source> </configuration> </execution> </executions> </plugin> </plugins> <extensions> <extension> <groupId>org.apache.maven.scm</groupId> <artifactId>maven-scm-provider-gitexe</artifactId> <version>${dep.plugin.scm.version}</version> </extension> <extension> <groupId>org.apache.maven.scm</groupId> <artifactId>maven-scm-manager-plexus</artifactId> <version>${dep.plugin.scm.version}</version> </extension> </extensions> </build> <profiles> <!-- All the check plugins below are enabled unless air.check.skip-all is set. If other properties are set, like air.check.skip-extended, or air.check.skip-<name>, these plugins will be skipped in their configuration. Multiple properties cannot be used in activation, and properties are evaluated after activating profiles. --> <profile> <id>enforcer-check</id> <activation> <property> <name>air.check.skip-all</name> <value>!true</value> </property> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>duplicate-finder-check</id> <activation> <property> <name>air.check.skip-all</name> <value>!true</value> </property> </activation> <build> <plugins> <plugin> <groupId>org.basepom.maven</groupId> <artifactId>duplicate-finder-maven-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>sort-pom-check</id> <activation> <property> <name>air.check.skip-all</name> <value>!true</value> </property> </activation> <build> <plugins> <plugin> <groupId>com.github.ekryd.sortpom</groupId> <artifactId>sortpom-maven-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>dependency-scope-check</id> <activation> <property> <name>air.check.skip-all</name> <value>!true</value> </property> </activation> <build> <plugins> <plugin> <groupId>org.basepom.maven</groupId> <artifactId>dependency-scope-maven-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>spotbugs-check</id> <activation> <property> <name>air.check.skip-all</name> <value>!true</value> </property> </activation> <build> <plugins> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>pmd-check</id> <activation> <property> <name>air.check.skip-all</name> <value>!true</value> </property> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>license-check</id> <activation> <property> <name>air.check.skip-all</name> <value>!true</value> </property> </activation> <build> <plugins> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>jacoco-check</id> <activation> <property> <name>air.check.skip-all</name> <value>!true</value> </property> </activation> <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>modernizer-check</id> <activation> <property> <name>air.check.skip-all</name> <value>!true</value> </property> </activation> <build> <plugins> <plugin> <groupId>org.gaul</groupId> <artifactId>modernizer-maven-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>checkstyle-check</id> <activation> <property> <name>air.check.skip-all</name> <value>!true</value> </property> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>oss-release</id> <properties> <!-- tests run in the preparation step of the release --> <skipTests>true</skipTests> </properties> <build> <plugins> <!-- oss requires a javadoc jar. Build one when releasing. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> </plugin> <!-- Sign artifacts using gpg for oss upload --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> </plugin> </plugins> </build> </profile> <!-- this is not activated by default so we don't break existing releases --> <profile> <id>oss-stage</id> <properties> <!-- Stage files to the local directory, JReleaser will push them to OSSRH --> <altDeploymentRepository>local::file:./target/staging-deploy</altDeploymentRepository> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <configuration> <!-- we will push commits and tags manually in the workflow --> <pushChanges>false</pushChanges> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>ci</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> </plugin> </plugins> </build> </profile> <!-- ======================================================================== --> <!-- = = --> <!-- = Build a tarball with launcher from a module if .build-airlift = --> <!-- = is present = --> <!-- = = --> <!-- ======================================================================== --> <profile> <id>build-airlift</id> <activation> <file> <exists>.build-airlift</exists> </file> </activation> <properties> <process-name>${project.artifactId}</process-name> </properties> <dependencies> <dependency> <groupId>io.airlift</groupId> <artifactId>launcher</artifactId> <version>${dep.launcher.version}</version> <classifier>bin</classifier> <type>tar.gz</type> <scope>runtime</scope> </dependency> <dependency> <groupId>io.airlift</groupId> <artifactId>launcher</artifactId> <version>${dep.launcher.version}</version> <classifier>properties</classifier> <type>tar.gz</type> <scope>runtime</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <configuration> <rules combine.children="append"> <requireProperty> <property>main-class</property> <message>The main-class property must be specified when building an airlift tarball.</message> <regex>.+</regex> <regexMessage>The main-class property can not be empty.</regexMessage> </requireProperty> </rules> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <appendAssemblyId>false</appendAssemblyId> <attach>true</attach> <descriptorRefs> <descriptorRef>distribution</descriptorRef> </descriptorRefs> </configuration> <dependencies> <dependency> <groupId>io.airlift</groupId> <artifactId>packaging</artifactId> <version>${dep.packaging.version}</version> </dependency> </dependencies> <executions> <execution> <id>package</id> <goals> <goal>single</goal> </goals> <phase>package</phase> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions> <execution> <id>attach-readme</id> <goals> <goal>attach-artifact</goal> </goals> <phase>package</phase> <configuration> <artifacts> <artifact> <file>${air.readme.file}</file> <type>${air.readme.type}</type> <classifier>readme</classifier> </artifact> </artifacts> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>