apm-agent-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>co.elastic.apm</groupId> <artifactId>apm-agent-parent</artifactId> <version>1.53.0</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>co.elastic.apm</groupId> <artifactId>apm-agent-parent</artifactId> <version>1.53.0</version> <packaging>pom</packaging> <name>${project.groupId}:${project.artifactId}</name> <inceptionYear>2018</inceptionYear> <organization> <name>Elastic Inc.</name> <url>https://www.elastic.co</url> </organization> <description>APM for Java applications with the Elastic stack</description> <url>https://github.com/elastic/apm-agent-java</url> <licenses> <license> <name>The Apache Software License, Version 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> </license> </licenses> <scm> <connection>scm:git:git@github.com:elastic/apm-agent-java.git</connection> <developerConnection>scm:git:git@github.com:elastic/apm-agent-java.git</developerConnection> <url>https://github.com/elastic/apm-agent-java</url> <tag>HEAD</tag> </scm> <developers> <developer> <name>Elastic</name> <url>https://discuss.elastic.co/c/apm</url> <organization>Elastic Inc.</organization> <organizationUrl>https://www.elastic.co</organizationUrl> </developer> </developers> <distributionManagement> <snapshotRepository> <id>sonatype-nexus-snapshots</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>sonatype-nexus-staging</id> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement> <prerequisites> <maven>3.8.3</maven> </prerequisites> <modules> <module>apm-agent-core</module> <module>elastic-apm-agent</module> <module>apm-agent-lambda-layer</module> <module>elastic-apm-agent-premain</module> <module>elastic-apm-agent-java8</module> <module>apm-agent-benchmarks</module> <module>apm-agent-plugins</module> <module>apm-agent-api</module> <module>integration-tests</module> <module>apm-agent-attach</module> <module>apm-agent-plugin-sdk</module> <module>apm-agent-bootstrap</module> <module>apm-agent-builds</module> <module>apm-agent-attach-cli</module> <module>apm-agent-common</module> <module>apm-agent-cached-lookup-key</module> <module>apm-agent-tracer</module> <module>apm-opentracing</module> <!-- IMPORTANT: For the nexus deployment to work correctly, the last project in the build order needs to have deployment enabled (maven-deploy-plugin.skip must be false). The reason is that for SNAPSHOT builds the upload is performed by the nexus-staging-maven-plugin after the last project build and EVERYTHING is skipped if this project is not part of the deployment. See the documentation (https://github.com/sonatype/nexus-maven-plugins/tree/main/staging/maven-plugin#plugin-flags) and the related issue (https://issues.sonatype.org/browse/NEXUS-9138). You can verify the build order by executing ./mvnw clean and looking for the "Reactor Build Order log". --> </modules> <properties> <maven.compiler.target>7</maven.compiler.target> <maven.compiler.testTarget>11</maven.compiler.testTarget> <maven.compiler.source>${maven.compiler.target}</maven.compiler.source> <maven.compiler.testSource>${maven.compiler.testTarget}</maven.compiler.testSource> <animal.sniffer.skip>false</animal.sniffer.skip> <!-- mockserver-client does not work with the latest jackson version see https://github.com/jamesdbloom/mockserver/issues/440 --> <maven.compiler.showWarnings>true</maven.compiler.showWarnings> <maven.compiler.errorprone>true</maven.compiler.errorprone> <!-- do not use javax.tools and use javac instead, work around https://bugs.openjdk.java.net/browse/JDK-8216202 --> <maven.compiler.forceJavacCompilerUse>true</maven.compiler.forceJavacCompilerUse> <!-- By default, artifacts are part of the deployment (mvn deploy:deploy). But the artifacts of some projects should not be deployed (to maven central for example). --> <maven-deploy-plugin.skip>false</maven-deploy-plugin.skip> <!-- -dependencies versions --> <version.error_prone>2.2.0</version.error_prone> <version.h2>1.4.196</version.h2> <version.junit>5.9.1</version.junit> <version.junit.vintage>4.13.2</version.junit.vintage> <version.okhttp>4.12.0</version.okhttp> <!-- this is the last version of slf4j that is compatible with Java 7--> <version.slf4j>1.7.36</version.slf4j> <!-- this is the last version of log4j that is compatible with Java 7. Due to a known vulnerability (https://nvd.nist.gov/vuln/detail/CVE-2020-9488#vulnCurrentDescriptionTitle), the SMTP appender is excluded from the build and not packaged into the agent artifacts --> <version.log4j>2.12.4</version.log4j> <version.ecs.logging>1.6.0</version.ecs.logging> <version.spring>5.0.15.RELEASE</version.spring> <version.jetty-server>9.4.11.v20180605</version.jetty-server> <version.json-schema-validator>1.5.6</version.json-schema-validator> <!-- Byte Buddy and ASM must be kept in sync --> <version.byte-buddy>1.17.5</version.byte-buddy> <version.asm>9.7.1</version.asm> <version.cucumber>5.4.0</version.cucumber> <version.mockito>5.16.1</version.mockito> <!-- used both for plugin & annotations dependency --> <version.animal-sniffer>1.17</version.animal-sniffer> <version.testcontainers>1.20.3</version.testcontainers> <!-- latest version compiled for java 11 --> <version.jsonunit>2.38.0</version.jsonunit> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <apm-agent-parent.base.dir>${project.basedir}</apm-agent-parent.base.dir> <skip.integration.test>false</skip.integration.test> <skip.unit.test>false</skip.unit.test> </properties> <profiles> <!-- This profile is needed to be active in IntelliJ as it does not understand that the tests have a different target version --> <profile> <id>IntelliJ</id> <activation> <activeByDefault>false</activeByDefault> <property> <!-- makes profile enabled in Intellij only --> <name>idea.maven.embedder.version</name> </property> </activation> <properties> <!-- use same java version as tests --> <maven.compiler.target>${maven.compiler.testTarget}</maven.compiler.target> <!-- used by IntelliJ to set per-module language level when target version is overriden in module --> <maven.compiler.source>${maven.compiler.testTarget}</maven.compiler.source> </properties> </profile> <profile> <id>ci-non-application-server-integration-tests</id> <activation> <activeByDefault>false</activeByDefault> </activation> <properties> <!-- By default, enables all integration tests. In integration-tests/application-server-integration-tests/pom.xml, only that module is excluded by overriding skip.integration.test to true. --> <skip.integration.test>false</skip.integration.test> <maven.javadoc.skip>true</maven.javadoc.skip> </properties> <build> <plugins> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <skipTests>${skip.integration.test}</skipTests> <rerunFailingTestsCount>3</rerunFailingTestsCount> </configuration> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>ci-application-server-integration-tests</id> <activation> <activeByDefault>false</activeByDefault> </activation> <properties> <!-- By default, disables all integration tests. In integration-tests/application-server-integration-tests/pom.xml, only that module is included by overriding skip.integration.test to false. --> <skip.integration.test>true</skip.integration.test> <maven.javadoc.skip>true</maven.javadoc.skip> <animal.sniffer.skip>true</animal.sniffer.skip> </properties> <build> <plugins> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <skipTests>${skip.integration.test}</skipTests> <rerunFailingTestsCount>3</rerunFailingTestsCount> </configuration> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build> </profile> <profile> <!-- copies behavior from app server tests for jboss --> <id>ci-jboss-integration-tests</id> <activation> <activeByDefault>false</activeByDefault> </activation> <properties> <!-- By default, disables all integration tests. In integration-tests/application-server-integration-tests/pom.xml, only that module is included by overriding skip.integration.test to false. --> <skip.integration.test>true</skip.integration.test> <maven.javadoc.skip>true</maven.javadoc.skip> <animal.sniffer.skip>true</animal.sniffer.skip> </properties> <build> <plugins> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <skipTests>${skip.integration.test}</skipTests> <rerunFailingTestsCount>3</rerunFailingTestsCount> </configuration> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>different-test-jdk</id> <activation> <property> <name>test_java_binary</name> </property> </activation> <build> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <jvm>${test_java_binary}</jvm> </configuration> </plugin> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <jvm>${test_java_binary}</jvm> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>no-errorprone</id> <activation> <property> <name>!maven.compiler.errorprone</name> </property> </activation> </profile> <profile> <id>errorprone</id> <activation> <activeByDefault>false</activeByDefault> </activation> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <compilerId>javac-with-errorprone</compilerId> <annotationProcessorPaths> <path> <groupId>com.uber.nullaway</groupId> <artifactId>nullaway</artifactId> <version>0.4.1</version> </path> </annotationProcessorPaths> <compilerArgs> <arg>-Xep:NullAway:ERROR</arg> <arg>-XepOpt:NullAway:AnnotatedPackages=co.elastic.apm</arg> </compilerArgs> </configuration> <dependencies> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-compiler-javac-errorprone</artifactId> <version>2.8.3</version> </dependency> <!-- override plexus-compiler-javac-errorprone's dependency on Error Prone with the latest version --> <dependency> <groupId>com.google.errorprone</groupId> <artifactId>error_prone_core</artifactId> <version>${version.error_prone}</version> </dependency> </dependencies> </plugin> </plugins> </build> </profile> <!-- Sign all artifacts (requires gpg installation). --> <profile> <id>gpg</id> <activation> <activeByDefault>false</activeByDefault> </activation> <build> <plugins> <plugin> <artifactId>maven-gpg-plugin</artifactId> <executions> <execution> <phase>verify</phase> <goals> <goal>sign</goal> </goals> <configuration> <gpgArguments> <arg>--pinentry-mode</arg> <arg>loopback</arg> </gpgArguments> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>2.16.2</version> </plugin> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <extensions>true</extensions> <configuration> <!-- The Base URL of Nexus instance where we want to stage --> <nexusUrl>https://oss.sonatype.org/</nexusUrl> <!-- The server "id" element from settings to use authentication from --> <serverId>sonatype-nexus-staging</serverId> <skipNexusStagingDeployMojo>${maven-deploy-plugin.skip}</skipNexusStagingDeployMojo> <autoReleaseAfterClose>true</autoReleaseAfterClose> </configuration> </plugin> <!-- The shadowed source files of this module need to be included explicitly to create a javadoc artifact.--> <plugin> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <additionalOptions>-html5</additionalOptions> <source>8</source> <detectJavaApiLink>false</detectJavaApiLink> </configuration> <executions> <execution> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <!-- Check that we don't accidentally use features only available in Java 8+ --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>animal-sniffer-maven-plugin</artifactId> <executions> <execution> <id>signature-check</id> <phase>verify</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <configuration> <skip>${animal.sniffer.skip}</skip> <signature> <groupId>org.codehaus.mojo.signature</groupId> <artifactId>java17</artifactId> <version>1.0</version> </signature> <!--work around for https://github.com/mojohaus/animal-sniffer/issues/18--> <ignores>java.lang.invoke.MethodHandle</ignores> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-java</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireJavaVersion> <version>${maven.compiler.testTarget}</version> </requireJavaVersion> </rules> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <enableAssertions>true</enableAssertions> <trimStackTrace>false</trimStackTrace> <rerunFailingTestsCount>3</rerunFailingTestsCount> </configuration> </plugin> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <configuration> <excludes> <exclude>**/*.esclazz</exclude> <exclude>**/*.jar</exclude> </excludes> </configuration> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>test</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> <!-- License headers --> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> <configuration> <licenseSets> <licenseSet> <header>${apm-agent-parent.base.dir}/licenses/apache2_license/apache2-license-header.txt</header> <includes> <include>**/*.java</include> </includes> </licenseSet> </licenseSets> </configuration> <executions> <execution> <id>update-license-headers</id> <goals> <goal>format</goal> </goals> <phase>process-sources</phase> </execution> <execution> <id>check-license-headers</id> <goals> <goal>check</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> </plugins> <pluginManagement> <!-- pin and set plugin versions at parent project level --> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>3.2.0</version> </plugin> <plugin> <artifactId>maven-source-plugin</artifactId> <version>3.2.0</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>3.5.2</version> </plugin> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <version>3.5.2</version> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> </plugin> <plugin> <artifactId>maven-dependency-plugin</artifactId> <version>3.5.0</version> </plugin> <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.5.3</version> </plugin> <plugin> <artifactId>maven-gpg-plugin</artifactId> <version>1.6</version> </plugin> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.6.13</version> </plugin> <plugin> <artifactId>maven-javadoc-plugin</artifactId> <version>3.3.1</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>animal-sniffer-maven-plugin</artifactId> <version>${version.animal-sniffer}</version> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>3.0.0-M1</version> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.8</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>license-maven-plugin</artifactId> <version>1.19</version> </plugin> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> <version>4.1</version> </plugin> <plugin> <groupId>com.coderplus.maven.plugins</groupId> <artifactId>copy-rename-maven-plugin</artifactId> <version>1.0</version> </plugin> <plugin> <artifactId>maven-shade-plugin</artifactId> <version>3.6.0</version> <dependencies> <!-- work-around to support java 24 bytecode --> <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> <version>${version.asm}</version> </dependency> <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm-commons</artifactId> <version>${version.asm}</version> </dependency> <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm-tree</artifactId> <version>${version.asm}</version> </dependency> </dependencies> </plugin> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>3.0.0-M1</version> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.1.0</version> </plugin> <plugin> <artifactId>maven-site-plugin</artifactId> <version>3.8.2</version> </plugin> <plugin> <artifactId>maven-antrun-plugin</artifactId> <version>3.0.0</version> </plugin> </plugins> </pluginManagement> <extensions> <extension> <groupId>io.opentelemetry.contrib</groupId> <artifactId>opentelemetry-maven-extension</artifactId> <version>1.7.0-alpha</version> </extension> </extensions> </build> <dependencyManagement> <dependencies> <dependency> <groupId>org.testcontainers</groupId> <artifactId>testcontainers-bom</artifactId> <version>${version.testcontainers}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.junit</groupId> <artifactId>junit-bom</artifactId> <version>${version.junit}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.fasterxml.jackson</groupId> <artifactId>jackson-bom</artifactId> <version>2.17.1</version> <scope>import</scope> <type>pom</type> </dependency> <dependency> <groupId>org.apache.ivy</groupId> <artifactId>ivy</artifactId> <version>2.5.3</version> <scope>test</scope> </dependency> <dependency> <groupId>org.stagemonitor</groupId> <artifactId>stagemonitor-configuration</artifactId> <version>0.87.3</version> </dependency> <!-- ensures that we always rely on a single bytebuddy version --> <dependency> <groupId>net.bytebuddy</groupId> <artifactId>byte-buddy</artifactId> <version>${version.byte-buddy}</version> </dependency> <dependency> <groupId>net.bytebuddy</groupId> <artifactId>byte-buddy-agent</artifactId> <version>${version.byte-buddy}</version> </dependency> <dependency> <groupId>net.bytebuddy</groupId> <artifactId>byte-buddy-dep</artifactId> <version>${version.byte-buddy}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.codehaus.mojo</groupId> <artifactId>animal-sniffer-annotations</artifactId> <version>${version.animal-sniffer}</version> <optional>true</optional> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>3.0.2</version> <optional>true</optional> <scope>provided</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <scope>test</scope> </dependency> <!-- platform launcher is required for programmatic launching of JUnit5 tests --> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-launcher</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-params</artifactId> <scope>test</scope> </dependency> <!-- JUnit 4 to make legacy JUnit 4 tests compile --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${version.junit.vintage}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>3.27.2</version> <scope>test</scope> <exclusions> <exclusion> <groupId>net.bytebuddy</groupId> <artifactId>byte-buddy</artifactId> <!-- conflicts with byte-buddy-dep --> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>${version.mockito}</version> <scope>test</scope> <exclusions> <exclusion> <groupId>net.bytebuddy</groupId> <artifactId>byte-buddy</artifactId> <!-- conflicts with byte-buddy-dep --> </exclusion> </exclusions> </dependency> <dependency> <!-- adding this to classpath allows to keep default behavior of mockito 4.x where mock subclassing is used. --> <groupId>org.mockito</groupId> <artifactId>mockito-subclass</artifactId> <version>${version.mockito}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.networknt</groupId> <artifactId>json-schema-validator</artifactId> <version>${version.json-schema-validator}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> <scope>test</scope> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>net.javacrumbs.json-unit</groupId> <artifactId>json-unit-assertj</artifactId> <version>${version.jsonunit}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.github.tomakehurst</groupId> <artifactId>wiremock-jre8-standalone</artifactId> <version>2.35.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.awaitility</groupId> <artifactId>awaitility</artifactId> <version>4.3.0</version> <scope>test</scope> </dependency> </dependencies> </project>