<!-- 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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.apache</groupId> <artifactId>apache</artifactId> <version>21</version> </parent> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-parent</artifactId> <version>${revision}</version> <packaging>pom</packaging> <name>${project.artifactId}</name> <description>The parent project of dubbo</description> <url>https://github.com/apache/dubbo</url> <inceptionYear>2011</inceptionYear> <licenses> <license> <name>Apache License, Version 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0</url> <distribution>repo</distribution> </license> </licenses> <scm> <url>https://github.com/apache/dubbo</url> <connection>scm:git:https://github.com/apache/dubbo.git</connection> <developerConnection>scm:git:https://github.com/apache/dubbo.git</developerConnection> <tag>HEAD</tag> </scm> <mailingLists> <mailingList> <name>Development List</name> <subscribe>dev-subscribe@dubbo.apache.org</subscribe> <unsubscribe>dev-unsubscribe@dubbo.apache.org</unsubscribe> <post>dev@dubbo.apache.org</post> </mailingList> <mailingList> <name>Commits List</name> <subscribe>commits-subscribe@dubbo.apache.org</subscribe> <unsubscribe>commits-unsubscribe@dubbo.apache.org</unsubscribe> <post>commits@dubbo.apache.org</post> </mailingList> <mailingList> <name>Issues List</name> <subscribe>issues-subscribe@dubbo.apache.org</subscribe> <unsubscribe>issues-unsubscribe@dubbo.apache.org</unsubscribe> <post>issues@dubbo.apache.org</post> </mailingList> </mailingLists> <developers> <developer> <id>dubbo.io</id> <name>The Dubbo Project Contributors</name> <email>dev-subscribe@dubbo.apache.org</email> <url>http://dubbo.apache.org/</url> </developer> </developers> <organization> <name>The Apache Software Foundation</name> <url>http://www.apache.org/</url> </organization> <issueManagement> <system>Github Issues</system> <url>https://github.com/apache/dubbo/issues</url> </issueManagement> <properties> <!-- Test libs --> <junit_jupiter_version>5.4.0</junit_jupiter_version> <hazelcast_version>3.11.1</hazelcast_version> <hamcrest_version>1.3</hamcrest_version> <hibernate_validator_version>5.2.4.Final</hibernate_validator_version> <el_api_version>2.2.4</el_api_version> <jaxb_api_version>2.2.7</jaxb_api_version> <cglib_version>2.2</cglib_version> <mockito_version>2.23.4</mockito_version> <!-- Build args --> <argline>-server -Xms256m -Xmx512m -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m </argline> <skip_maven_deploy>false</skip_maven_deploy> <updateReleaseInfo>true</updateReleaseInfo> <project.build.sourceEncoding>${file_encoding}</project.build.sourceEncoding> <profile.name>oss</profile.name> <!-- for maven compiler plugin --> <java_source_version>1.8</java_source_version> <java_target_version>1.8</java_target_version> <file_encoding>UTF-8</file_encoding> <!-- Maven plugins --> <maven_jar_version>3.0.2</maven_jar_version> <maven_surefire_version>2.22.1</maven_surefire_version> <maven_deploy_version>2.8.2</maven_deploy_version> <maven_compiler_version>3.6.0</maven_compiler_version> <maven_source_version>3.0.1</maven_source_version> <maven_javadoc_version>3.0.1</maven_javadoc_version> <maven_jetty_version>9.4.11.v20180605</maven_jetty_version> <maven_checkstyle_version>3.0.0</maven_checkstyle_version> <maven_jacoco_version>0.8.2</maven_jacoco_version> <maven_flatten_version>1.1.0</maven_flatten_version> <maven_enforce_version>3.0.0-M2</maven_enforce_version> <apache-rat-plugin.version>0.12</apache-rat-plugin.version> <arguments /> <checkstyle.skip>true</checkstyle.skip> <rat.skip>true</rat.skip> <revision>2.7.5-SNAPSHOT</revision> </properties> <modules> <module>dubbo-common</module> <module>dubbo-container</module> <module>dubbo-remoting</module> <module>dubbo-rpc</module> <module>dubbo-filter</module> <module>dubbo-cluster</module> <module>dubbo-registry</module> <module>dubbo-monitor</module> <module>dubbo-config</module> <module>dubbo-demo</module> <module>dubbo-plugin</module> <module>dubbo-serialization</module> <module>dubbo-compatible</module> <module>dubbo-dependencies-bom</module> <module>dubbo-bom</module> <module>dubbo-all</module> <module>dubbo-distribution</module> <module>dubbo-configcenter</module> <module>dubbo-dependencies</module> <module>dubbo-metadata</module> </modules> <dependencyManagement> <dependencies> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-dependencies-bom</artifactId> <version>${project.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <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.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> <version>${hamcrest_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>cglib</groupId> <artifactId>cglib-nodep</artifactId> <version>${cglib_version}</version> <scope>test</scope> </dependency> </dependencies> <profiles> <profile> <id>snapshot-ci-deploy</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>${maven_enforce_version}</version> <executions> <execution> <id>enforce-no-releases</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireSnapshotVersion> <message>No Releases Allowed!</message> <failWhenParentIsRelease>false</failWhenParentIsRelease> </requireSnapshotVersion> </rules> <fail>true</fail> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>javadoc-lint</id> <activation> <jdk>[1.8,)</jdk> </activation> <properties> <doclint>none</doclint> </properties> </profile> <profile> <id>checkstyle</id> <activation> <jdk>[1.8,)</jdk> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>${maven_checkstyle_version}</version> <dependencies> <dependency> <groupId>com.puppycrawl.tools</groupId> <artifactId>checkstyle</artifactId> <version>8.9</version> </dependency> </dependencies> <executions> <execution> <id>checkstyle-validation</id> <phase>validate</phase> <configuration> <configLocation>codestyle/checkstyle.xml</configLocation> <suppressionsLocation>codestyle/checkstyle-suppressions.xml</suppressionsLocation> <encoding>UTF-8</encoding> <consoleOutput>true</consoleOutput> <failOnViolation>true</failOnViolation> <excludes>**/JSONWriter.java</excludes> </configuration> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>release</id> <properties> <log4j2_version>2.11.1</log4j2_version> </properties> <build> <plugins> <plugin> <artifactId>maven-source-plugin</artifactId> <version>${maven_source_version}</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-javadoc-plugin</artifactId> <version>${maven_javadoc_version}</version> <executions> <execution> <id>attach-javadoc</id> <goals> <goal>jar</goal> <goal>aggregate</goal> </goals> <configuration> <additionalDependencies> <additionalDependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j2_version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j2_version}</version> </additionalDependency> </additionalDependencies> </configuration> </execution> </executions> <configuration> <show>public</show> <charset>UTF-8</charset> <encoding>UTF-8</encoding> <docencoding>UTF-8</docencoding> <links> <link>http://docs.oracle.com/javase/8/docs/api</link> </links> <doclint>none</doclint> <excludePackageNames> org.apache.dubbo.demo,org.apache.dubbo.demo.* </excludePackageNames> <doctitle>Apache Dubbo ${project.version} API</doctitle> <windowtitle>Apache Dubbo ${project.version} API</windowtitle> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <executions> <execution> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </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> </profiles> <build> <!-- Used for packaging NOTICE & LICENSE to each sub-module jar--> <resources> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> </resource> <resource> <directory>${maven.multiModuleProjectDirectory}</directory> <targetPath>META-INF/</targetPath> <filtering>false</filtering> <includes> <include>NOTICE</include> <include>LICENSE</include> </includes> </resource> </resources> <plugins> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>${maven_jar_version}</version> <configuration> <archive> <addMavenDescriptor>true</addMavenDescriptor> <index>true</index> <manifest> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> </manifest> <manifestEntries> <Specification-Version>${project.version}</Specification-Version> <Implementation-Version>${project.version}</Implementation-Version> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${maven_surefire_version}</version> <configuration> <useSystemClassLoader>true</useSystemClassLoader> <forkMode>once</forkMode> <argLine>${argline} ${jacocoArgLine}</argLine> <systemProperties> <!-- common shared --> </systemProperties> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>${maven_deploy_version}</version> <configuration> <skip>${skip_maven_deploy}</skip> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven_compiler_version}</version> <configuration> <compilerArgument>-proc:none</compilerArgument> <fork>true</fork> <source>${java_source_version}</source> <target>${java_target_version}</target> <encoding>${file_encoding}</encoding> </configuration> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${maven_jacoco_version}</version> <executions> <execution> <id>jacoco-initialize</id> <goals> <goal>prepare-agent</goal> </goals> <configuration> <propertyName>jacocoArgLine</propertyName> </configuration> </execution> <execution> <id>report-aggregate</id> <phase>verify</phase> <goals> <goal>report-aggregate</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.rat</groupId> <artifactId>apache-rat-plugin</artifactId> <version>${apache-rat-plugin.version}</version> <executions> <execution> <id>verify.rat</id> <phase>verify</phase> <goals> <goal>check</goal> </goals> <configuration> <excludes> <exclude>**/*.versionsBackup</exclude> <exclude>**/.idea/</exclude> <exclude>**/*.iml</exclude> <exclude>**/*.txt</exclude> <exclude>**/*.load</exclude> <exclude>**/*.flex</exclude> <exclude>**/*.fc</exclude> <exclude>**/*.javascript</exclude> <exclude>**/*.properties</exclude> <exclude>**/*.thrift</exclude> <exclude>**/*.sh</exclude> <exclude>**/*.bat</exclude> <exclude>**/*.md</exclude> <exclude>.git/</exclude> <exclude>.gitignore</exclude> <!-- ASF jenkins box puts the Maven repo in our root directory. --> <exclude>.repository/</exclude> <exclude>**/.settings/*</exclude> <exclude>**/.classpath</exclude> <exclude>**/.project</exclude> <exclude>**/target/**</exclude> <exclude>**/*.log</exclude> <exclude>CODE_OF_CONDUCT.md</exclude> <exclude>.codecov.yml</exclude> <exclude>.travis.yml</exclude> <exclude>PULL_REQUEST_TEMPLATE.md</exclude> <exclude>CONTRIBUTING.md</exclude> <exclude>README.md</exclude> <exclude>Jenkinsfile</exclude> <exclude>**/codestyle/*</exclude> <exclude>**/resources/META-INF/**</exclude> <!-- exclude the netty files --> <exclude>**/org/apache/dubbo/common/threadlocal/InternalThreadLocal.java</exclude> <exclude>**/org/apache/dubbo/common/threadlocal/InternalThreadLocalMap.java</exclude> <exclude>**/org/apache/dubbo/common/timer/TimerTask.java</exclude> <exclude>**/org/apache/dubbo/common/timer/Timer.java</exclude> <exclude>**/org/apache/dubbo/common/timer/Timeout.java</exclude> <exclude>**/org/apache/dubbo/common/timer/HashedWheelTimer.java</exclude> <!-- exclude the edazdarevic files --> <exclude>**/org/apache/dubbo/common/utils/CIDRUtils.java</exclude> <!-- exclude protobuf generated files --> <exclude>**/org/apache/dubbo/common/serialize/protobuf/support/wrapper/MapValue.java </exclude> <exclude> **/org/apache/dubbo/common/serialize/protobuf/support/wrapper/ThrowablePB.java </exclude> <exclude>.github/**</exclude> <exclude>compiler/**</exclude> </excludes> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.5.3</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <useReleaseProfile>false</useReleaseProfile> <releaseProfiles>release</releaseProfiles> <goals>deploy</goals> <arguments>${arguments}</arguments> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>flatten-maven-plugin</artifactId> <version>${maven_flatten_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> </plugins> <pluginManagement> <plugins> <!-- keep surefire and failsafe in sync --> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> </plugin> <!-- keep surefire and failsafe in sync --> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <version>2.22.1</version> </plugin> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.0.0</version> </plugin> <plugin> <groupId>org.ops4j.pax.exam</groupId> <artifactId>maven-paxexam-plugin</artifactId> <version>1.2.4</version> </plugin> <plugin> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> </plugin> <plugin> <!-- Do NOT upgrade --> <artifactId>maven-jxr-plugin</artifactId> <version>2.2</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.10</version> </plugin> <plugin> <groupId>org.fusesource.hawtjni</groupId> <artifactId>maven-hawtjni-plugin</artifactId> <version>1.14</version> </plugin> <plugin> <groupId>kr.motd.maven</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.0.0.Final</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.3</version> <configuration> <createDependencyReducedPom>false</createDependencyReducedPom> </configuration> </plugin> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>${maven_jetty_version}</version> </plugin> </plugins> </pluginManagement> </build> </project>