<?xml version="1.0" encoding="UTF-8"?> <!-- ~ Copyright 1999-2019 Seata.io Group. ~ ~ Licensed 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>io.seata</groupId> <artifactId>seata-parent</artifactId> <version>${revision}</version> <modules> <module>all</module> <module>bom</module> <module>common</module> <module>config</module> <module>core</module> <module>discovery</module> <module>distribution</module> <module>integration/dubbo</module> <module>integration/dubbo-alibaba</module> <module>integration/sofa-rpc</module> <module>integration/motan</module> <module>integration/grpc</module> <module>integration/http</module> <module>rm</module> <module>rm-datasource</module> <module>server</module> <module>spring</module> <module>tcc</module> <module>test</module> <module>tm</module> <module>metrics</module> <module>serializer</module> <module>seata-spring-boot-starter</module> <module>compressor</module> <module>saga</module> <module>sqlparser</module> </modules> <packaging>pom</packaging> <name>Seata Parent POM ${project.version}</name> <url>http://seata.io</url> <description>top seata project pom.xml file</description> <licenses> <license> <name>Apache License, Version 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0</url> <distribution>repo</distribution> </license> </licenses> <developers> <developer> <id>Seata</id> <name>Seata</name> <url>https://seata.io</url> <email>dev-seata@googlegroups.com</email> </developer> </developers> <organization> <name>Seata</name> <url>https://github.com/seata</url> </organization> <issueManagement> <system>github</system> <url>https://github.com/seata/seata/issues</url> </issueManagement> <scm> <url>git@github.com:seata/seata.git</url> <connection>scm:git@github.com:seata/seata.git</connection> <developerConnection>scm:git@github.com:seata/seata.git</developerConnection> </scm> <properties> <!-- seata version --> <revision>1.4.2</revision> <!-- Compiler settings properties --> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!-- Maven plugins --> <maven.test.skip>false</maven.test.skip> <jacoco-maven-plugin.version>0.8.3</jacoco-maven-plugin.version> <flatten-maven-plugin.version>1.1.0</flatten-maven-plugin.version> <maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version> <maven-compiler-plugin.version>3.6.0</maven-compiler-plugin.version> <p3c-pmd.version>1.3.6</p3c-pmd.version> <maven-pmd-plugin.version>3.8</maven-pmd-plugin.version> <maven-javadoc-plugin.version>3.0.0</maven-javadoc-plugin.version> <maven-source-plugin.version>2.2.1</maven-source-plugin.version> <protobuf-maven-plugin.version>0.5.0</protobuf-maven-plugin.version> <license-maven-plugin.version>3.0</license-maven-plugin.version> <maven-checkstyle-plugin.version>3.1.1</maven-checkstyle-plugin.version> <!-- for test --> <junit-jupiter.version>5.4.2</junit-jupiter.version> <mockito.version>2.23.4</mockito.version> <assertj-core.version>3.12.2</assertj-core.version> <junit-platform-launcher.version>1.4.2</junit-platform-launcher.version> <!-- for docker image--> <image.publish.skip>true</image.publish.skip> <image.tags>latest</image.tags> <checkstyle.skip>true</checkstyle.skip> <license.skip>true</license.skip> <!-- for jdbc driver when package --> <mysql.jdbc.version>5.1.35</mysql.jdbc.version> <mysql8.jdbc.version>8.0.19</mysql8.jdbc.version> </properties> <!--test--> <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit-jupiter.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-params</artifactId> <version>${junit-jupiter.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-launcher</artifactId> <version>${junit-platform-launcher.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>${mockito.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-junit-jupiter</artifactId> <version>${mockito.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>${assertj-core.version}</version> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>io.seata</groupId> <artifactId>seata-bom</artifactId> <version>${revision}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <profiles> <profile> <id>release</id> <build> <plugins> <!-- Javadoc --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${maven-javadoc-plugin.version}</version> <configuration> <charset>UTF-8</charset> <failOnError>false</failOnError> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <!-- GPG --> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.6.7</version> <extensions>true</extensions> <configuration> <serverId>oss_seata</serverId> <nexusUrl>https://oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>false</autoReleaseAfterClose> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>1.6</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> <configuration> <keyname>A1C4DAB9B220DBA0C277E945D6A1420D747D1EE0</keyname> </configuration> </execution> </executions> </plugin> </plugins> </build> <distributionManagement> <snapshotRepository> <id>oss_seata</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>oss_seata</id> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement> <properties> <image.publish.skip>false</image.publish.skip> <image.tags>${project.version},latest</image.tags> </properties> </profile> <profile> <id>licenseCheck</id> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>license-maven-plugin</artifactId> <version>1.20</version> <executions> <execution> <id>license-check</id> <phase>generate-sources</phase> <goals> <goal>add-third-party</goal> </goals> <configuration> <includeOptional>false</includeOptional> <useMissingFile>false</useMissingFile> <failOnMissing>false</failOnMissing> <licenseMerges> <licenseMerge>Apache License, Version 2.0|The Apache Software License, Version 2.0|ASF 2.0|Apache 2|Apache-2.0|Apache 2.0 License|Apache 2.0|Apache License v2.0|Apache License 2.0|The Apache License, Version 2.0|The Apache Software License, Version 2.0 </licenseMerge> <licenseMerge>The MIT License|MIT License</licenseMerge> <licenseMerge>The 3-Clause BSD License|New BSD License|3-Clause BSD License|BSD|3-Clause BSD License|The New BSD License </licenseMerge> </licenseMerges> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>image</id> <properties> <image.publish.skip>false</image.publish.skip> <image.tags>latest</image.tags> </properties> </profile> <profile> <id>checkstyle</id> <activation> <jdk>[1.8,)</jdk> </activation> <build> <plugins> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> <version>${license-maven-plugin.version}</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>remove</goal> <goal>format</goal> </goals> </execution> </executions> <configuration> <quiet>true</quiet> <header>${user.dir}/style/copyright</header> <includes> <include>**/src/main/java/**</include> <include>**/src/test/java/**</include> </includes> <excludes> <exclude>**/generated/**</exclude> <exclude>**/antlr/mysql/parser/*.*</exclude> <exclude>**/antlr/mysql/antlr/*.*</exclude> <exclude>**/antlr/mysql/stream/ANTLRNoCaseStringStream.java</exclude> </excludes> <strictCheck>true</strictCheck> <mapping> <java>SLASHSTAR_STYLE</java> </mapping> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>${maven-checkstyle-plugin.version}</version> <executions> <execution> <id>validate</id> <phase>validate</phase> <configuration> <configLocation>${user.dir}/style/seata_checkstyle.xml</configLocation> <suppressionsLocation>${user.dir}/style/seata_suppressions.xml</suppressionsLocation> <encoding>UTF-8</encoding> <consoleOutput>true</consoleOutput> <failsOnError>true</failsOnError> </configuration> <goals> <goal>checkstyle</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> <build> <extensions> <extension> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>1.5.0.Final</version> </extension> </extensions> <plugins> <!-- Source --> <plugin> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> <version>${protobuf-maven-plugin.version}</version> <configuration> <protoSourceRoot>${project.basedir}/src/main/resources/protobuf/io/seata/protocol/transcation/</protoSourceRoot> <protocArtifact> com.google.protobuf:protoc:3.3.0:exe:${os.detected.classifier} </protocArtifact> </configuration> <executions> <execution> <goals> <goal>compile</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>${maven-source-plugin.version}</version> <executions> <execution> <phase>package</phase> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <version>${maven-pmd-plugin.version}</version> <configuration> <sourceEncoding>${project.build.sourceEncoding}</sourceEncoding> <minimumPriority>2</minimumPriority> <printFailingErrors>true</printFailingErrors> <rulesets> <ruleset>rulesets/java/ali-comment.xml</ruleset> <ruleset>rulesets/java/ali-concurrent.xml</ruleset> <ruleset>rulesets/java/ali-constant.xml</ruleset> <ruleset>rulesets/java/ali-exception.xml</ruleset> <ruleset>rulesets/java/ali-flowcontrol.xml</ruleset> <ruleset>rulesets/java/ali-naming.xml</ruleset> <ruleset>rulesets/java/ali-oop.xml</ruleset> <ruleset>rulesets/java/ali-orm.xml</ruleset> <ruleset>rulesets/java/ali-other.xml</ruleset> <ruleset>rulesets/java/ali-set.xml</ruleset> </rulesets> <excludes> <exclude>**/generated/*.java</exclude> <exclude>**/antlr/mysql/parser/*.*</exclude> <exclude>**/antlr/mysql/antlr/*.*</exclude> <exclude>**/antlr/mysql/stream/ANTLRNoCaseStringStream.java</exclude> </excludes> </configuration> <executions> <execution> <phase>verify</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>com.alibaba.p3c</groupId> <artifactId>p3c-pmd</artifactId> <version>${p3c-pmd.version}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven-compiler-plugin.version}</version> <configuration> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> </configuration> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${jacoco-maven-plugin.version}</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>test</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>flatten-maven-plugin</artifactId> <version>${flatten-maven-plugin.version}</version> <configuration> <updatePomFile>true</updatePomFile> <flattenMode>resolveCiFriendliesOnly</flattenMode> </configuration> <executions> <execution> <id>flatten</id> <phase>process-resources</phase> <goals> <goal>flatten</goal> </goals> </execution> <execution> <id>flatten.clean</id> <phase>clean</phase> <goals> <goal>clean</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.0.0-M3</version> <executions> <execution> <id>enforce-maven</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireMavenVersion> <version>[3.6.0,)</version> </requireMavenVersion> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>