blob: 819686e3f321ce90f3035c1dd0264cf5cd6938c5 [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
~
~ http://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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm</artifactId>
<version>6.2.0</version>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>21</version>
<relativePath />
</parent>
<modules>
<module>apm-commons</module>
<module>apm-protocol</module>
</modules>
<packaging>pom</packaging>
<name>apm</name>
<url>https://github.com/apache/skywalking</url>
<scm>
<url>https://github.com/apache/skywalking</url>
<connection>scm:git:https://github.com/apache/skywalking.git</connection>
<developerConnection>scm:git:https://github.com/apache/skywalking.git</developerConnection>
<tag>v6.2.0</tag>
</scm>
<issueManagement>
<system>GitHub</system>
<url>https://github.com/apache/skywalking/issues</url>
</issueManagement>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<mailingLists>
<mailingList>
<name>SkyWalking Developer List</name>
<post>dev@skywalking.apache.org</post>
<subscribe>dev-subscribe@skywalking.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@skywalking.apache.org</unsubscribe>
</mailingList>
<mailingList>
<name>SkyWalking Commits</name>
<post>commits@skywalking.apache.org</post>
<subscribe>commits-subscribe@skywalking.apache.org</subscribe>
<unsubscribe>commits-unsubscribe@skywalking.apache.org</unsubscribe>
</mailingList>
</mailingLists>
<profiles>
<profile>
<id>agent</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>apm-sniffer</module>
<module>apm-application-toolkit</module>
</modules>
</profile>
<profile>
<id>backend</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>oap-server</module>
</modules>
</profile>
<profile>
<id>ui</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>apm-webapp</module>
</modules>
</profile>
<profile>
<id>dist</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>apm-dist</module>
</modules>
</profile>
<profile>
<id>all</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<modules>
<module>apm-sniffer</module>
<module>apm-application-toolkit</module>
<module>oap-server</module>
<module>apm-webapp</module>
<module>apm-dist</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${exec-maven-plugin.version}</version>
<executions>
<execution>
<id>git submodule update</id>
<phase>initialize</phase>
<inherited>false</inherited>
<configuration>
<executable>git</executable>
<arguments>
<argument>submodule</argument>
<argument>update</argument>
<argument>--init</argument>
<argument>--recursive</argument>
</arguments>
</configuration>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>CI-with-IT</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<compiler.version>1.8</compiler.version>
<powermock.version>1.6.4</powermock.version>
<checkstyle.version>6.18</checkstyle.version>
<junit.version>4.12</junit.version>
<mockito-all.version>1.10.19</mockito-all.version>
<!-- Plugin versions -->
<docker.plugin.version>0.4.13</docker.plugin.version>
<takari-maven-plugin.version>0.6.1</takari-maven-plugin.version>
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
<maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
<maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
<maven-assembly-plugin.version>3.1.0</maven-assembly-plugin.version>
<maven-failsafe-plugin.version>2.22.0</maven-failsafe-plugin.version>
<maven-surefire-plugin.version>2.22.0</maven-surefire-plugin.version>
<maven-jar-plugin.version>3.1.0</maven-jar-plugin.version>
<maven-shade-plugin.version>3.1.1</maven-shade-plugin.version>
<maven-enforcer-plugin.version>3.0.0-M2</maven-enforcer-plugin.version>
<apache-rat-plugin.version>0.12</apache-rat-plugin.version>
<maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
<maven-resource-plugin.version>3.1.0</maven-resource-plugin.version>
<maven-source-plugin.version>3.0.1</maven-source-plugin.version>
<versions-maven-plugin.version>2.5</versions-maven-plugin.version>
<coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version>
<maven-checkstyle-plugin.version>3.1.0</maven-checkstyle-plugin.version>
<jacoco-maven-plugin.version>0.8.3</jacoco-maven-plugin.version>
<jmh.version>1.21</jmh.version>
<gmaven-plugin.version>1.5</gmaven-plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>${jmh.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>${jmh.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>${mockito-all.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<!-- mvn -N io.takari:maven:wrapper -Dmaven=3.5.4 -->
<plugin>
<groupId>io.takari</groupId>
<artifactId>maven</artifactId>
<version>${takari-maven-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>${maven-antrun-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven-deploy-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven-assembly-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-failsafe-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<version>${maven-shade-plugin.version}</version>
</plugin>
<!--
maven-surefire-plugin will exclude integration tests (ITs)
and leave them for maven-failsafe-plugin to run, which is bound to the `verify` goal.
If you want to run the ITs please activate the CI-with-IT profile
as well as the the profiles of the modules whose ITs you want to run.
e.g. you want to run the ITs in oap-server, run `./mvnw -Pbackend,CI-with-IT clean verify`
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<excludes>
<exclude>IT*.class</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${maven-docker-plugin.version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
<executions>
<execution>
<id>enforce-java</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<!-- Build has not yet been updated for Java 9+ -->
<version>1.8</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>${apache-rat-plugin.version}</version>
<configuration>
<excludes>
<exclude>**/target/**</exclude>
<exclude>**/licenses/**</exclude>
<exclude>**/ui-licenses/**</exclude>
<exclude>**/codeStyle.xml</exclude>
<!-- IDE files -->
<exclude>**/*.iml</exclude>
<exclude>**/.idea/**</exclude>
<exclude>**/*.classpath</exclude>
<exclude>**/.project</exclude>
<exclude>**/.settings/**</exclude>
<exclude>**/dependency-reduced-pom.xml</exclude>
<!-- UI IDE configs -->
<exclude>**/skywalking-ui/.editorconfig</exclude>
<!-- UI ignore -->
<exclude>**/skywalking-ui/.browserslistrc</exclude>
<!-- git files -->
<exclude>**/.gitignore</exclude>
<exclude>**/.gitmodules</exclude>
<exclude>**/.git/**</exclude>
<!-- CI files -->
<exclude>**/.travis.yml</exclude>
<!-- GitHub files -->
<exclude>**/.github/**</exclude>
<!-- document files -->
<exclude>**/*.md</exclude>
<excldue>**/*.MD</excldue>
<exclude>**/*.txt</exclude>
<exclude>**/docs/**</exclude>
<!-- Test cases data in JSON format -->
<exclude>**/src/test/resources/json/*.json</exclude>
<!-- front end libary and generated files -->
<exclude>**/skywalking-ui/node_modules/**</exclude>
<exclude>**/skywalking-ui/node/**</exclude>
<exclude>**/skywalking-ui/dist/**</exclude>
<!-- web UI dependencies descriptions -->
<exclude>skywalking-ui/package.json</exclude>
<exclude>skywalking-ui/package-lock.json</exclude>
<!-- Proto files of Istio, envoy, prometheus and gogoproto projects -->
<exclude>**/src/main/proto/envoy/**</exclude>
<exclude>**/src/main/proto/gogoproto/gogo.proto</exclude>
<exclude>**/src/main/proto/google/**</exclude>
<exclude>**/src/main/proto/istio/**</exclude>
<exclude>**/src/main/proto/jaeger/**</exclude>
<exclude>**/src/main/proto/policy/**</exclude>
<exclude>**/src/main/proto/prometheus/client_model/metrics.proto</exclude>
<exclude>**/src/main/proto/protoc-gen-swagger/**</exclude>
<exclude>**/src/main/proto/validate/validate.proto</exclude>
<!-- generated file from antlr -->
<exclude>**/src/main/antlr4/org/apache/skywalking/oal/tool/grammar/OALLexer.tokens</exclude>
<!-- Maven Wrapper generated files -->
<exclude>.mvn/wrapper/maven-wrapper.properties</exclude>
</excludes>
</configuration>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${compiler.version}</source>
<target>${compiler.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resource-plugin.version}</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker.plugin.version}</version>
<configuration>
<skipDocker>true</skipDocker>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>none</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<version>${coveralls-maven-plugin.version}</version>
<configuration>
<repoToken>xFwR2GqmxcMxV7tGEpW2NfwIrbCD4cQCS</repoToken>
<sourceDirectories>
<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
</sourceDirectories>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
<configuration>
<configLocation>apm-checkstyle/checkStyle.xml</configLocation>
<headerLocation>apm-checkstyle/CHECKSTYLE_HEAD</headerLocation>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<failsOnError>true</failsOnError>
<includes>org/apache/skywalking/**/*.java</includes>
<excludes>
org/apache/skywalking/apm/network/register/v2/**/*.java,
org/apache/skywalking/apm/network/common/**/*.java,
org/apache/skywalking/apm/network/servicemesh/**/*.java,
org/apache/skywalking/apm/network/language/**/*.java,
org/apache/skywalking/oap/server/core/remote/grpc/proto/*.java,
org/apache/skywalking/oal/tool/grammar/*.java,
org/apache/skywalking/oap/server/exporter/grpc/*.java,
org/apache/skywalking/oap/server/configuration/service/*.java
</excludes>
</configuration>
<executions>
<execution>
<id>validate</id>
<phase>process-sources</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>