You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hx...@apache.org on 2021/02/07 15:44:07 UTC

[iotdb] 01/05: temp commit for assembly

This is an automated email from the ASF dual-hosted git repository.

hxd pushed a commit to branch new_distribution
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit a352e25eef1dcaae98c6c2faeabb4d3baf5ee487
Author: e <87...@qq.com>
AuthorDate: Fri Feb 5 12:00:13 2021 +0800

    temp commit for assembly
---
 client-cpp/pom.xml                                 | 158 +++++++++++----------
 client-cpp/src/assembly/client-cpp.xml             |   1 +
 cluster/src/assembly/cluster.xml                   |   8 +-
 compile-tools/thrift/pom.xml                       | 120 +---------------
 compile-tools/thrift/src/assembly/compiler.xml     |  37 -----
 compile-tools/thrift/src/assembly/cpp.xml          |  51 -------
 compile-tools/thrift/src/assembly/python.xml       |  38 -----
 distribution/pom.xml                               |  38 ++++-
 .../src/assembly/{distribution.xml => all.xml}     |  59 ++++----
 distribution/src/assembly/cli.xml                  |  54 +++++++
 distribution/src/assembly/client-cpp.xml           |  76 ++++++++++
 .../src/assembly/{distribution.xml => cluster.xml} |  61 ++++----
 distribution/src/assembly/common-files.xml         |  48 +++++++
 distribution/src/assembly/grafana.xml              |  48 +++++++
 .../src/assembly/{distribution.xml => server.xml}  |  49 ++-----
 pom.xml                                            |  16 +--
 16 files changed, 430 insertions(+), 432 deletions(-)

diff --git a/client-cpp/pom.xml b/client-cpp/pom.xml
index e5762d7..446e2e2 100644
--- a/client-cpp/pom.xml
+++ b/client-cpp/pom.xml
@@ -40,6 +40,7 @@
         <cmake.root.dir>${project.build.directory}/dependency/cmake/</cmake.root.dir>
         <cmake.build.type>Release</cmake.build.type>
         <catch2.url>https://github.com/catchorg/Catch2/releases/download/v2.13.0/catch.hpp</catch2.url>
+        <cpp.test.skip>false</cpp.test.skip>
     </properties>
     <modules>
         <module>../example/client-cpp-example</module>
@@ -61,7 +62,6 @@
             </activation>
             <properties>
                 <os.suffix>linux</os.suffix>
-                <os.classifier>linux-x86_64</os.classifier>
                 <cmake.generator>Unix Makefiles</cmake.generator>
                 <cmake.root.dir>${project.parent.basedir}/compile-tools/thrift/target/cmake-${cmake-version}-Linux-x86_64/</cmake.root.dir>
                 <thrift.exec.absolute.path>${project.parent.basedir}/compile-tools/thrift/target/build/compiler/cpp/bin/thrift</thrift.exec.absolute.path>
@@ -77,7 +77,6 @@
             </activation>
             <properties>
                 <os.suffix>mac</os.suffix>
-                <os.classifier>mac-x86_64</os.classifier>
                 <cmake.generator>Unix Makefiles</cmake.generator>
                 <cmake.root.dir>${project.parent.basedir}/compile-tools/thrift/target/cmake-${cmake-version}-Darwin-x86_64/CMake.app/Contents</cmake.root.dir>
                 <thrift.exec.absolute.path>${project.parent.basedir}/compile-tools/thrift/target/build/compiler/cpp/bin/thrift</thrift.exec.absolute.path>
@@ -93,7 +92,6 @@
             </activation>
             <properties>
                 <os.suffix>win</os.suffix>
-                <os.classifier>windows-x86_64</os.classifier>
                 <cmake.generator>Visual Studio 16 2019</cmake.generator>
                 <cmake.root.dir>${project.parent.basedir}/compile-tools/thrift/target/cmake-${cmake-version}-win64-x64/</cmake.root.dir>
                 <thrift.exec.absolute.path>${project.parent.basedir}/compile-tools/thrift/target/build/compiler/cpp/bin/${cmake.build.type}/thrift.exe</thrift.exec.absolute.path>
@@ -111,13 +109,35 @@
             </activation>
             <build>
                 <plugins>
+                    <!-- Build and do session integration test -->
+                    <plugin>
+                        <artifactId>maven-resources-plugin</artifactId>
+                        <version>2.6</version>
+                        <executions>
+                            <execution>
+                                <id>copy-test-resources</id>
+                                <phase>validate</phase>
+                                <goals>
+                                    <goal>copy-resources</goal>
+                                </goals>
+                                <configuration>
+                                    <outputDirectory>${project.build.directory}/build/test</outputDirectory>
+                                    <resources>
+                                        <resource>
+                                            <directory>${project.basedir}/src/test</directory>
+                                            <filtering>true</filtering>
+                                        </resource>
+                                    </resources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
                     <plugin>
                         <groupId>com.coderplus.maven.plugins</groupId>
                         <artifactId>copy-rename-maven-plugin</artifactId>
                         <version>1.0</version>
                         <executions>
                             <execution>
-                                <!-- Copy rpc.thrift into target directory -->
                                 <id>copy-thrift-source</id>
                                 <goals>
                                     <goal>copy</goal>
@@ -229,51 +249,6 @@
                                     <projectDirectory>${project.build.directory}/build/main</projectDirectory>
                                 </configuration>
                             </execution>
-                            <!-- Generate Cmake build directory to compile testing program -->
-                            <execution>
-                                <id>cmake-generate-test</id>
-                                <phase>test-compile</phase>
-                                <goals>
-                                    <goal>generate</goal>
-                                </goals>
-                                <configuration>
-                                    <classifier>${os.classifier}</classifier>
-                                    <downloadBinaries>false</downloadBinaries>
-                                    <sourcePath>${project.build.directory}/build/test</sourcePath>
-                                    <targetPath>${project.build.directory}/build/test</targetPath>
-                                    <generator>${cmake.generator}</generator>
-                                    <options>
-                                        <option>-DBOOST_INCLUDEDIR=${boost.include.dir}</option>
-                                        <option>-DBOOST_LIBRARYDIR=${boost.library.dir}</option>
-                                    </options>
-                                </configuration>
-                            </execution>
-                            <!-- Actually executes the testing compilation -->
-                            <execution>
-                                <id>cmake-compile-test</id>
-                                <phase>test-compile</phase>
-                                <goals>
-                                    <goal>compile</goal>
-                                </goals>
-                                <configuration>
-                                    <classifier>${os.classifier}</classifier>
-                                    <config>${cmake.build.type}</config>
-                                    <downloadBinaries>false</downloadBinaries>
-                                    <projectDirectory>${project.build.directory}/build/test</projectDirectory>
-                                </configuration>
-                            </execution>
-                            <!-- Run the integration test cases -->
-                            <execution>
-                                <id>cmake-run-test</id>
-                                <phase>test</phase>
-                                <goals>
-                                    <goal>test</goal>
-                                </goals>
-                                <configuration>
-                                    <buildDirectory>${project.build.directory}/build/test</buildDirectory>
-                                    <downloadBinaries>false</downloadBinaries>
-                                </configuration>
-                            </execution>
                         </executions>
                     </plugin>
                     <!--Package all C++ header files and client library-->
@@ -296,47 +271,66 @@
                             </execution>
                         </executions>
                     </plugin>
-                    <!-- Build and do session integration test -->
                     <plugin>
-                        <artifactId>maven-resources-plugin</artifactId>
-                        <version>2.6</version>
+                        <groupId>com.googlecode.maven-download-plugin</groupId>
+                        <artifactId>download-maven-plugin</artifactId>
+                        <version>1.3.0</version>
                         <executions>
+                            <!-- Download the Catch2 header file. -->
                             <execution>
-                                <id>copy-test-resources</id>
-                                <phase>validate</phase>
+                                <id>get-catch2</id>
+                                <phase>generate-resources</phase>
                                 <goals>
-                                    <goal>copy-resources</goal>
+                                    <goal>wget</goal>
                                 </goals>
                                 <configuration>
-                                    <outputDirectory>${project.build.directory}/build/test</outputDirectory>
-                                    <resources>
-                                        <resource>
-                                            <directory>${project.basedir}/src/test</directory>
-                                            <filtering>true</filtering>
-                                        </resource>
-                                    </resources>
+                                    <url>${catch2.url}</url>
+                                    <unpack>false</unpack>
+                                    <outputDirectory>${project.build.directory}/build/test/catch2</outputDirectory>
                                 </configuration>
                             </execution>
                         </executions>
                     </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>cpp.test.skip</id>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+            <build>
+                <plugins>
                     <plugin>
-                        <groupId>com.googlecode.maven-download-plugin</groupId>
-                        <artifactId>download-maven-plugin</artifactId>
+                        <groupId>com.googlecode.cmake-maven-project</groupId>
+                        <artifactId>cmake-maven-plugin</artifactId>
+                        <version>3.7.2-b1</version>
                         <executions>
-                            <!-- Download the Catch2 header file. -->
+                            <!-- Actually executes the testing compilation -->
                             <execution>
-                                <id>get-catch2</id>
-                                <phase>generate-resources</phase>
+                                <id>cmake-compile-test</id>
+                                <phase>test-compile</phase>
                                 <goals>
-                                    <goal>wget</goal>
+                                    <goal>compile</goal>
                                 </goals>
                                 <configuration>
-                                    <url>${catch2.url}</url>
-                                    <unpack>false</unpack>
-                                    <outputDirectory>${project.build.directory}/build/test/catch2</outputDirectory>
-                                    <skipCache>false</skipCache>
-                                    <!-- must be true to avoid the local Catch2 has incorrect vesion.-->
-                                    <overwrite>false</overwrite>
+                                    <classifier>${os.classifier}</classifier>
+                                    <config>${cmake.build.type}</config>
+                                    <downloadBinaries>false</downloadBinaries>
+                                    <projectDirectory>${project.build.directory}/build/test</projectDirectory>
+                                </configuration>
+                            </execution>
+                            <!-- Run the integration test cases -->
+                            <execution>
+                                <id>cmake-run-test</id>
+                                <phase>test</phase>
+                                <goals>
+                                    <goal>test</goal>
+                                </goals>
+                                <configuration>
+                                    <skipTests>${cpp.test.skip}</skipTests>
+                                    <buildDirectory>${project.build.directory}/build/test</buildDirectory>
+                                    <downloadBinaries>false</downloadBinaries>
                                 </configuration>
                             </execution>
                         </executions>
@@ -354,6 +348,7 @@
                                     <goal>start</goal>
                                 </goals>
                                 <configuration>
+                                    <skip>${cpp.test.skip}</skip>
                                     <name>start-iotdb</name>
                                     <waitForInterrupt>false</waitForInterrupt>
                                     <!-- Maximum time in seconds to wait after launching IoTDB -->
@@ -372,11 +367,26 @@
                                 <goals>
                                     <goal>stop-all</goal>
                                 </goals>
+                                <configuration>
+                                    <skip>${cpp.test.skip}</skip>
+                                </configuration>
                             </execution>
                         </executions>
                     </plugin>
                 </plugins>
             </build>
         </profile>
+        <profile>
+            <id>skipCppTests</id>
+            <activation>
+                <property>
+                    <name>skipTests</name>
+                    <value>true</value>
+                </property>
+            </activation>
+            <properties>
+                <cpp.test.skip>true</cpp.test.skip>
+            </properties>
+        </profile>
     </profiles>
 </project>
diff --git a/client-cpp/src/assembly/client-cpp.xml b/client-cpp/src/assembly/client-cpp.xml
index c602b60..9de99ea 100644
--- a/client-cpp/src/assembly/client-cpp.xml
+++ b/client-cpp/src/assembly/client-cpp.xml
@@ -21,6 +21,7 @@
     <id>cpp-${os.classifier}</id>
     <formats>
         <format>zip</format>
+        <format>dir</format>
     </formats>
     <includeBaseDirectory>false</includeBaseDirectory>
     <fileSets>
diff --git a/cluster/src/assembly/cluster.xml b/cluster/src/assembly/cluster.xml
index 9fa6af5..66b9e38 100644
--- a/cluster/src/assembly/cluster.xml
+++ b/cluster/src/assembly/cluster.xml
@@ -20,8 +20,12 @@
             <outputDirectory>${file.separator}</outputDirectory>
         </fileSet>
         <fileSet>
-            <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources</directory>
-            <outputDirectory>${file.separator}</outputDirectory>
+            <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/conf</directory>
+            <outputDirectory>${file.separator}conf</outputDirectory>
+        </fileSet>
+        <fileSet>
+            <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/tools</directory>
+            <outputDirectory>${file.separator}tools</outputDirectory>
         </fileSet>
     </fileSets>
 </assembly>
diff --git a/compile-tools/thrift/pom.xml b/compile-tools/thrift/pom.xml
index b314655..9d4f5d5 100644
--- a/compile-tools/thrift/pom.xml
+++ b/compile-tools/thrift/pom.xml
@@ -105,103 +105,13 @@
                 </plugins>
             </build>
         </profile>
-        <!-- If C++ is enabled, we need to add another assembly to the build to package the libraries -->
-        <profile>
-            <id>with-cpp</id>
-            <properties>
-                <thrift.with.cpp>ON</thrift.with.cpp>
-            </properties>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>package-thrift-cpp</id>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>single</goal>
-                                </goals>
-                                <configuration>
-                                    <finalName>${project.artifactId}-${project.version}</finalName>
-                                    <descriptors>
-                                        <descriptor>src/assembly/cpp.xml</descriptor>
-                                    </descriptors>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <!-- If C# is enabled, we need to add another assembly to the build to package the libraries -->
-        <profile>
-            <id>with-dotnet</id>
-            <properties>
-                <thrift.with.csharp>ON</thrift.with.csharp>
-            </properties>
-            <build>
-                <plugins>
-                    <!-- This library is currently not buildable via CMake (yet) -->
-                    <!--plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-assembly-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>package-thrift-cpp</id>
-                <phase>package</phase>
-                <goals>
-                  <goal>single</goal>
-                </goals>
-                <configuration>
-                  <finalName>${project.artifactId}-${project.version}</finalName>
-                  <descriptors>
-                    <descriptor>src/assembly/csharp.xml</descriptor>
-                  </descriptors>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin-->
-                </plugins>
-            </build>
-        </profile>
-        <!-- If Python is enabled, we need to add another assembly to the build to package the libraries -->
-        <profile>
-            <id>with-python</id>
-            <properties>
-                <thrift.with.python>ON</thrift.with.python>
-            </properties>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>package-thrift-python</id>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>single</goal>
-                                </goals>
-                                <configuration>
-                                    <finalName>${project.artifactId}-${project.version}</finalName>
-                                    <descriptors>
-                                        <descriptor>src/assembly/python.xml</descriptor>
-                                    </descriptors>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
     </profiles>
     <build>
         <plugins>
             <plugin>
                 <groupId>com.googlecode.maven-download-plugin</groupId>
                 <artifactId>download-maven-plugin</artifactId>
+                <version>1.3.0</version>
                 <executions>
                     <!-- Download the CMake binary distribution for this platform. -->
                     <execution>
@@ -214,7 +124,6 @@
                             <url>${cmake.url}</url>
                             <unpack>true</unpack>
                             <outputDirectory>${project.build.directory}</outputDirectory>
-                            <overwrite>true</overwrite>
                         </configuration>
                     </execution>
                     <!-- Download the sources for building the thrift compiler -->
@@ -228,7 +137,6 @@
                             <url>https://archive.apache.org/dist/thrift/${thrift.version}/thrift-${thrift.version}.zip</url>
                             <unpack>true</unpack>
                             <outputDirectory>${project.build.directory}</outputDirectory>
-                            <overwrite>false</overwrite>
                         </configuration>
                     </execution>
                 </executions>
@@ -333,32 +241,6 @@
                     </execution>
                 </executions>
             </plugin>
-            <!-- Add the thrift compiler executable to the build -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>source-release-assembly</id>
-                        <configuration>
-                            <skip>true</skip>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>package-thrift-compiler</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>single</goal>
-                        </goals>
-                        <configuration>
-                            <finalName>${project.artifactId}-${project.version}</finalName>
-                            <descriptors>
-                                <descriptor>src/assembly/compiler.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
             <!-- Copy the config.h file into thrift include directory -->
             <plugin>
                 <groupId>com.coderplus.maven.plugins</groupId>
diff --git a/compile-tools/thrift/src/assembly/compiler.xml b/compile-tools/thrift/src/assembly/compiler.xml
deleted file mode 100644
index a58798e..0000000
--- a/compile-tools/thrift/src/assembly/compiler.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?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.
-  -->
-<assembly>
-    <id>compiler-${os.classifier}</id>
-    <formats>
-        <format>zip</format>
-    </formats>
-    <includeBaseDirectory>false</includeBaseDirectory>
-    <fileSets>
-        <fileSet>
-            <directory>${project.build.directory}/build/compiler/cpp/bin</directory>
-            <includes>
-                <include>*</include>
-            </includes>
-            <outputDirectory/>
-            <!-- Make sure the files are executable. -->
-            <fileMode>755</fileMode>
-        </fileSet>
-    </fileSets>
-</assembly>
diff --git a/compile-tools/thrift/src/assembly/cpp.xml b/compile-tools/thrift/src/assembly/cpp.xml
deleted file mode 100644
index 13acd18..0000000
--- a/compile-tools/thrift/src/assembly/cpp.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?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.
-  -->
-<assembly>
-    <id>cpp-${os.classifier}</id>
-    <formats>
-        <format>zip</format>
-    </formats>
-    <includeBaseDirectory>false</includeBaseDirectory>
-    <fileSets>
-        <fileSet>
-            <directory>${project.build.directory}/thrift-${thrift.version}/lib/cpp/src</directory>
-            <includes>
-                <include>**/*.h</include>
-                <include>**/*.tcc</include>
-            </includes>
-            <outputDirectory>include</outputDirectory>
-        </fileSet>
-        <fileSet>
-            <directory>${project.build.directory}/build/thrift</directory>
-            <includes>
-                <include>**/*.h</include>
-            </includes>
-            <outputDirectory>include/thrift</outputDirectory>
-        </fileSet>
-        <fileSet>
-            <directory>${project.build.directory}/build/lib</directory>
-            <includes>
-                <include>*.a</include>
-                <include>*.dylib</include>
-            </includes>
-            <outputDirectory>lib</outputDirectory>
-        </fileSet>
-    </fileSets>
-</assembly>
diff --git a/compile-tools/thrift/src/assembly/python.xml b/compile-tools/thrift/src/assembly/python.xml
deleted file mode 100644
index 541aaea..0000000
--- a/compile-tools/thrift/src/assembly/python.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?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.
-  -->
-<assembly>
-    <id>python</id>
-    <formats>
-        <format>zip</format>
-    </formats>
-    <includeBaseDirectory>false</includeBaseDirectory>
-    <fileSets>
-        <fileSet>
-            <directory>${project.build.directory}/thrift-${thrift.version}/lib/py/src</directory>
-            <includes>
-                <include>**</include>
-            </includes>
-            <excludes>
-                <exclude>ext/**</exclude>
-            </excludes>
-            <outputDirectory>thrift</outputDirectory>
-        </fileSet>
-    </fileSets>
-</assembly>
diff --git a/distribution/pom.xml b/distribution/pom.xml
index f97179a..6b2abd1 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -29,6 +29,7 @@
     </parent>
     <artifactId>iotdb-distribution</artifactId>
     <name>IoTDB Distribution</name>
+    <modules/>
     <build>
         <plugins>
             <plugin>
@@ -38,14 +39,19 @@
                 <executions>
                     <!-- Package binaries-->
                     <execution>
-                        <id>binary-release-assembly</id>
+                        <id>all-bin</id>
                         <phase>package</phase>
                         <goals>
                             <goal>single</goal>
                         </goals>
                         <configuration>
                             <descriptors>
-                                <descriptor>src/assembly/distribution.xml</descriptor>
+                                <descriptor>src/assembly/all.xml</descriptor>
+                                <descriptor>src/assembly/server.xml</descriptor>
+                                <descriptor>src/assembly/cluster.xml</descriptor>
+                                <descriptor>src/assembly/cli.xml</descriptor>
+                                <descriptor>src/assembly/grafana.xml</descriptor>
+                                <descriptor>src/assembly/client-cpp.xml</descriptor>
                             </descriptors>
                             <finalName>apache-iotdb-${project.version}</finalName>
                         </configuration>
@@ -71,10 +77,16 @@
                                 <algorithm>SHA-512</algorithm>
                             </algorithms>
                             <fileSets>
+                                <!--bin-all-->
                                 <fileSet>
                                     <directory>${project.build.directory}</directory>
                                     <includes>
-                                        <include>apache-iotdb-${project.version}-bin.zip</include>
+                                        <include>apache-iotdb-${project.version}-all-bin.zip</include>
+                                        <include>apache-iotdb-${project.version}-server-bin.zip</include>
+                                        <include>apache-iotdb-${project.version}-cli-bin.zip</include>
+                                        <include>apache-iotdb-${project.version}-cluster-bin.zip</include>
+                                        <include>apache-iotdb-${project.version}-grafana-bin.zip</include>
+                                        <include>apache-iotdb-${project.version}-client-cpp-bin.zip</include>
                                     </includes>
                                 </fileSet>
                             </fileSets>
@@ -116,5 +128,25 @@
             <version>${project.version}</version>
             <type>war</type>
         </dependency>
+        <dependency>
+            <groupId>org.apache.iotdb</groupId>
+            <artifactId>cluster</artifactId>
+            <version>${project.version}</version>
+            <type>zip</type>
+        </dependency>
     </dependencies>
+    <profiles>
+        <profile>
+            <id>client-cpp</id>
+            <dependencies>
+                <dependency>
+                    <groupId>org.apache.iotdb</groupId>
+                    <artifactId>client-cpp</artifactId>
+                    <version>${project.version}</version>
+                    <type>pom</type>
+                    <classifier>${os.classifier}</classifier>
+                </dependency>
+            </dependencies>
+        </profile>
+    </profiles>
 </project>
diff --git a/distribution/src/assembly/distribution.xml b/distribution/src/assembly/all.xml
similarity index 70%
copy from distribution/src/assembly/distribution.xml
copy to distribution/src/assembly/all.xml
index cdb6792..64bd964 100644
--- a/distribution/src/assembly/distribution.xml
+++ b/distribution/src/assembly/all.xml
@@ -20,7 +20,7 @@
 
 -->
 <assembly>
-    <id>bin</id>
+    <id>all-bin</id>
     <formats>
         <format>dir</format>
         <format>zip</format>
@@ -29,14 +29,17 @@
     <dependencySets>
         <dependencySet>
             <includes>
-                <include>*:zip:*</include>
+                <include>*:iotdb-server:zip:*</include>
+                <include>*:iotdb-cli:zip:*</include>
+                <include>*:cluster:zip:*</include>
             </includes>
             <outputDirectory>${file.separator}</outputDirectory>
+            <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
             <unpack>true</unpack>
         </dependencySet>
         <dependencySet>
             <includes>
-                <include>*:iotdb-grafana:*</include>
+                <include>*:iotdb-grafana:war:*</include>
             </includes>
             <outputDirectory>tools/grafana/</outputDirectory>
             <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
@@ -45,6 +48,10 @@
     </dependencySets>
     <fileSets>
         <fileSet>
+            <outputDirectory>conf</outputDirectory>
+            <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/conf</directory>
+        </fileSet>
+        <fileSet>
             <outputDirectory>sbin</outputDirectory>
             <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/sbin</directory>
             <fileMode>0755</fileMode>
@@ -60,40 +67,40 @@
             <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
-            <directory>${maven.multiModuleProjectDirectory}/licenses</directory>
-            <outputDirectory>licenses</outputDirectory>
+            <outputDirectory>tools</outputDirectory>
+            <directory>${maven.multiModuleProjectDirectory}/cli/src/assembly/resources/tools</directory>
+            <fileMode>0755</fileMode>
+        </fileSet>
+        <fileSet>
+            <outputDirectory>conf</outputDirectory>
+            <directory>${maven.multiModuleProjectDirectory}/cluster/src/assembly/resources/conf</directory>
+        </fileSet>
+        <fileSet>
+            <outputDirectory>sbin</outputDirectory>
+            <directory>${maven.multiModuleProjectDirectory}/cluster/src/assembly/resources/sbin</directory>
+            <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
             <directory>${maven.multiModuleProjectDirectory}/docs</directory>
             <outputDirectory>docs</outputDirectory>
         </fileSet>
+        <fileSet>
+            <directory>${maven.multiModuleProjectDirectory}/licenses</directory>
+            <outputDirectory>licenses</outputDirectory>
+        </fileSet>
     </fileSets>
     <files>
         <file>
+            <source>${maven.multiModuleProjectDirectory}/grafana/src/main/resources/application.properties</source>
+            <destName>tools/grafana/application.properties</destName>
+        </file>
+        <file>
             <source>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/conf/iotdb-env.sh</source>
             <destName>conf/iotdb-env.sh</destName>
             <fileMode>0755</fileMode>
         </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/README.md</source>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/README_ZH.md</source>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/LICENSE-binary</source>
-            <destName>LICENSE</destName>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/NOTICE-binary</source>
-            <destName>NOTICE</destName>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/RELEASE_NOTES.md</source>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/grafana/src/main/resources/application.properties</source>
-            <destName>tools/grafana/application.properties</destName>
-        </file>
     </files>
+    <componentDescriptors>
+        <componentDescriptor>common-files.xml</componentDescriptor>
+    </componentDescriptors>
 </assembly>
diff --git a/distribution/src/assembly/cli.xml b/distribution/src/assembly/cli.xml
new file mode 100644
index 0000000..ab24b83
--- /dev/null
+++ b/distribution/src/assembly/cli.xml
@@ -0,0 +1,54 @@
+<?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.
+
+-->
+<assembly>
+    <id>cli-bin</id>
+    <formats>
+        <format>dir</format>
+        <format>zip</format>
+    </formats>
+    <includeBaseDirectory>true</includeBaseDirectory>
+    <dependencySets>
+        <dependencySet>
+            <includes>
+                <include>*:iotdb-cli:zip</include>
+            </includes>
+            <outputDirectory>${file.separator}</outputDirectory>
+            <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
+            <unpack>true</unpack>
+        </dependencySet>
+    </dependencySets>
+    <fileSets>
+        <!--        <fileSet>-->
+        <!--            <outputDirectory>sbin</outputDirectory>-->
+        <!--            <directory>${maven.multiModuleProjectDirectory}/cli/src/assembly/resources/sbin</directory>-->
+        <!--            <fileMode>0755</fileMode>-->
+        <!--        </fileSet>-->
+        <!--        <fileSet>-->
+        <!--            <outputDirectory>tools</outputDirectory>-->
+        <!--            <directory>${maven.multiModuleProjectDirectory}/cli/src/assembly/resources/tools</directory>-->
+        <!--            <fileMode>0755</fileMode>-->
+        <!--        </fileSet>-->
+    </fileSets>
+    <componentDescriptors>
+        <componentDescriptor>common-files.xml</componentDescriptor>
+    </componentDescriptors>
+</assembly>
diff --git a/distribution/src/assembly/client-cpp.xml b/distribution/src/assembly/client-cpp.xml
new file mode 100644
index 0000000..e01c851
--- /dev/null
+++ b/distribution/src/assembly/client-cpp.xml
@@ -0,0 +1,76 @@
+<?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.
+
+-->
+<assembly>
+    <id>client-cpp-${os.classifier}-bin</id>
+    <formats>
+        <format>dir</format>
+        <format>zip</format>
+    </formats>
+    <baseDirectory>apache-iotdb-${project.version}-client-cpp-bin</baseDirectory>
+    <!--    <dependencySets>-->
+    <!--        <dependencySet>-->
+    <!--            <includes>-->
+    <!--                <include>*:client-cpp:zip:${os.classifier}</include>-->
+    <!--            </includes>-->
+    <!--            <outputDirectory>${file.separator}</outputDirectory>-->
+    <!--            <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>-->
+    <!--            <unpack>true</unpack>-->
+    <!--        </dependencySet>-->
+    <!--    </dependencySets>-->
+    <fileSets>
+        <fileSet>
+            <directory>${maven.multiModuleProjectDirectory}/client-cpp/target/build/main/generated-sources-cpp</directory>
+            <includes>
+                <include>**/*.h</include>
+            </includes>
+            <outputDirectory>include</outputDirectory>
+        </fileSet>
+        <fileSet>
+            <directory>${maven.multiModuleProjectDirectory}/compile-tools/thrift/target/thrift-${thrift.version}/lib/cpp/src</directory>
+            <includes>
+                <include>**/*.h</include>
+                <include>**/*.tcc</include>
+            </includes>
+            <outputDirectory>include</outputDirectory>
+        </fileSet>
+        <fileSet>
+            <directory>${maven.multiModuleProjectDirectory}/client-cpp/target/build/main</directory>
+            <includes>
+                <include>*.so</include>
+                <include>*.dylib</include>
+                <include>**/*.dll</include>
+                <include>**/*.lib</include>
+            </includes>
+            <outputDirectory>lib</outputDirectory>
+        </fileSet>
+        <fileSet>
+            <directory>${maven.multiModuleProjectDirectory}/compile-tools/thrift/target/build/lib/Release</directory>
+            <includes>
+                <include>**/*.lib</include>
+            </includes>
+            <outputDirectory>lib</outputDirectory>
+        </fileSet>
+    </fileSets>
+    <componentDescriptors>
+        <componentDescriptor>common-files.xml</componentDescriptor>
+    </componentDescriptors>
+</assembly>
diff --git a/distribution/src/assembly/distribution.xml b/distribution/src/assembly/cluster.xml
similarity index 66%
copy from distribution/src/assembly/distribution.xml
copy to distribution/src/assembly/cluster.xml
index cdb6792..8cd453e 100644
--- a/distribution/src/assembly/distribution.xml
+++ b/distribution/src/assembly/cluster.xml
@@ -20,7 +20,7 @@
 
 -->
 <assembly>
-    <id>bin</id>
+    <id>cluster-bin</id>
     <formats>
         <format>dir</format>
         <format>zip</format>
@@ -29,39 +29,48 @@
     <dependencySets>
         <dependencySet>
             <includes>
-                <include>*:zip:*</include>
+                <include>*:cluster:zip:*</include>
+                <include>*:iotdb-server:zip:*</include>
+                <include>*:iotdb-cli:zip:*</include>
             </includes>
             <outputDirectory>${file.separator}</outputDirectory>
-            <unpack>true</unpack>
-        </dependencySet>
-        <dependencySet>
-            <includes>
-                <include>*:iotdb-grafana:*</include>
-            </includes>
-            <outputDirectory>tools/grafana/</outputDirectory>
             <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
-            <unpack>false</unpack>
+            <unpack>true</unpack>
         </dependencySet>
     </dependencySets>
     <fileSets>
         <fileSet>
+            <directory>${maven.multiModuleProjectDirectory}/cluster/src/assembly/resources/conf</directory>
+            <outputDirectory>conf</outputDirectory>
+        </fileSet>
+        <fileSet>
+            <directory>${maven.multiModuleProjectDirectory}/cluster/src/assembly/resources/sbin</directory>
             <outputDirectory>sbin</outputDirectory>
-            <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/sbin</directory>
             <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
-            <outputDirectory>tools</outputDirectory>
+            <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/conf</directory>
+            <outputDirectory>conf</outputDirectory>
+        </fileSet>
+        <fileSet>
             <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/tools</directory>
+            <outputDirectory>tools</outputDirectory>
             <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
+            <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/sbin</directory>
             <outputDirectory>sbin</outputDirectory>
+            <fileMode>0755</fileMode>
+        </fileSet>
+        <fileSet>
             <directory>${maven.multiModuleProjectDirectory}/cli/src/assembly/resources/sbin</directory>
+            <outputDirectory>sbin</outputDirectory>
             <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
-            <directory>${maven.multiModuleProjectDirectory}/licenses</directory>
-            <outputDirectory>licenses</outputDirectory>
+            <directory>${maven.multiModuleProjectDirectory}/cli/src/assembly/resources/tools</directory>
+            <outputDirectory>tools</outputDirectory>
+            <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
             <directory>${maven.multiModuleProjectDirectory}/docs</directory>
@@ -74,26 +83,8 @@
             <destName>conf/iotdb-env.sh</destName>
             <fileMode>0755</fileMode>
         </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/README.md</source>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/README_ZH.md</source>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/LICENSE-binary</source>
-            <destName>LICENSE</destName>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/NOTICE-binary</source>
-            <destName>NOTICE</destName>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/RELEASE_NOTES.md</source>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/grafana/src/main/resources/application.properties</source>
-            <destName>tools/grafana/application.properties</destName>
-        </file>
     </files>
+    <componentDescriptors>
+        <componentDescriptor>common-files.xml</componentDescriptor>
+    </componentDescriptors>
 </assembly>
diff --git a/distribution/src/assembly/common-files.xml b/distribution/src/assembly/common-files.xml
new file mode 100644
index 0000000..4befd2a
--- /dev/null
+++ b/distribution/src/assembly/common-files.xml
@@ -0,0 +1,48 @@
+<?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.
+
+-->
+<component xmlns="http://maven.apache.org/ASSEMBLY-COMPONENT/2.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/ASSEMBLY-COMPONENT/2.1.0 http://maven.apache.org/xsd/assembly-component-2.1.0.xsd">
+    <fileSets>
+        <fileSet>
+            <directory>${maven.multiModuleProjectDirectory}/licenses</directory>
+            <outputDirectory>licenses</outputDirectory>
+        </fileSet>
+    </fileSets>
+    <files>
+        <file>
+            <source>${maven.multiModuleProjectDirectory}/README.md</source>
+        </file>
+        <file>
+            <source>${maven.multiModuleProjectDirectory}/README_ZH.md</source>
+        </file>
+        <file>
+            <source>${maven.multiModuleProjectDirectory}/LICENSE-binary</source>
+            <destName>LICENSE</destName>
+        </file>
+        <file>
+            <source>${maven.multiModuleProjectDirectory}/NOTICE-binary</source>
+            <destName>NOTICE</destName>
+        </file>
+        <file>
+            <source>${maven.multiModuleProjectDirectory}/RELEASE_NOTES.md</source>
+        </file>
+    </files>
+</component>
diff --git a/distribution/src/assembly/grafana.xml b/distribution/src/assembly/grafana.xml
new file mode 100644
index 0000000..6333f67
--- /dev/null
+++ b/distribution/src/assembly/grafana.xml
@@ -0,0 +1,48 @@
+<?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.
+
+-->
+<assembly>
+    <id>grafana-bin</id>
+    <formats>
+        <format>dir</format>
+        <format>zip</format>
+    </formats>
+    <includeBaseDirectory>true</includeBaseDirectory>
+    <dependencySets>
+        <dependencySet>
+            <includes>
+                <include>*:iotdb-grafana:war:*</include>
+            </includes>
+            <outputDirectory>${file.separator}</outputDirectory>
+            <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
+            <unpack>false</unpack>
+        </dependencySet>
+    </dependencySets>
+    <files>
+        <file>
+            <source>${maven.multiModuleProjectDirectory}/grafana/src/main/resources/application.properties</source>
+            <destName>application.properties</destName>
+        </file>
+    </files>
+    <componentDescriptors>
+        <componentDescriptor>common-files.xml</componentDescriptor>
+    </componentDescriptors>
+</assembly>
diff --git a/distribution/src/assembly/distribution.xml b/distribution/src/assembly/server.xml
similarity index 65%
rename from distribution/src/assembly/distribution.xml
rename to distribution/src/assembly/server.xml
index cdb6792..f0eda00 100644
--- a/distribution/src/assembly/distribution.xml
+++ b/distribution/src/assembly/server.xml
@@ -20,31 +20,29 @@
 
 -->
 <assembly>
-    <id>bin</id>
+    <id>server-bin</id>
     <formats>
         <format>dir</format>
         <format>zip</format>
     </formats>
-    <includeBaseDirectory>true</includeBaseDirectory>
+    <baseDirectory>apache-iotdb-${project.version}-server-bin</baseDirectory>
     <dependencySets>
         <dependencySet>
             <includes>
-                <include>*:zip:*</include>
+                <include>*:iotdb-server:zip:*</include>
+                <include>*:iotdb-cli:zip:*</include>
             </includes>
             <outputDirectory>${file.separator}</outputDirectory>
-            <unpack>true</unpack>
-        </dependencySet>
-        <dependencySet>
-            <includes>
-                <include>*:iotdb-grafana:*</include>
-            </includes>
-            <outputDirectory>tools/grafana/</outputDirectory>
             <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
-            <unpack>false</unpack>
+            <unpack>true</unpack>
         </dependencySet>
     </dependencySets>
     <fileSets>
         <fileSet>
+            <outputDirectory>conf</outputDirectory>
+            <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/conf</directory>
+        </fileSet>
+        <fileSet>
             <outputDirectory>sbin</outputDirectory>
             <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/sbin</directory>
             <fileMode>0755</fileMode>
@@ -60,8 +58,9 @@
             <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
-            <directory>${maven.multiModuleProjectDirectory}/licenses</directory>
-            <outputDirectory>licenses</outputDirectory>
+            <outputDirectory>tools</outputDirectory>
+            <directory>${maven.multiModuleProjectDirectory}/cli/src/assembly/resources/tools</directory>
+            <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
             <directory>${maven.multiModuleProjectDirectory}/docs</directory>
@@ -74,26 +73,8 @@
             <destName>conf/iotdb-env.sh</destName>
             <fileMode>0755</fileMode>
         </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/README.md</source>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/README_ZH.md</source>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/LICENSE-binary</source>
-            <destName>LICENSE</destName>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/NOTICE-binary</source>
-            <destName>NOTICE</destName>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/RELEASE_NOTES.md</source>
-        </file>
-        <file>
-            <source>${maven.multiModuleProjectDirectory}/grafana/src/main/resources/application.properties</source>
-            <destName>tools/grafana/application.properties</destName>
-        </file>
     </files>
+    <componentDescriptors>
+        <componentDescriptor>common-files.xml</componentDescriptor>
+    </componentDescriptors>
 </assembly>
diff --git a/pom.xml b/pom.xml
index c901853..2a3e8dc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -901,6 +901,7 @@
                 </os>
             </activation>
             <properties>
+                <os.classifier>windows-x86_64</os.classifier>
                 <thrift.download-url>http://artfiles.org/apache.org/thrift/${thrift.version}/thrift-${thrift.version}.exe</thrift.download-url>
                 <thrift.executable>thrift-${thrift.version}-win-x86_64.exe</thrift.executable>
                 <thrift.skip-making-executable>true</thrift.skip-making-executable>
@@ -917,6 +918,7 @@
                 </os>
             </activation>
             <properties>
+                <os.classifier>linux-x86_64</os.classifier>
                 <thrift.download-url>https://github.com/jt2594838/mvn-thrift-compiler/raw/master/thrift_0.12.0_0.13.0_linux.exe</thrift.download-url>
                 <thrift.executable>thrift_0.12.0_0.13.0_linux.exe</thrift.executable>
                 <thrift.skip-making-executable>false</thrift.skip-making-executable>
@@ -932,6 +934,7 @@
                 </os>
             </activation>
             <properties>
+                <os.classifier>mac-x86_64</os.classifier>
                 <thrift.download-url>https://github.com/jt2594838/mvn-thrift-compiler/raw/master/thrift_0.12.0_0.13.0_mac.exe</thrift.download-url>
                 <thrift.executable>thrift_0.12.0_0.13.0_mac.exe</thrift.executable>
                 <thrift.skip-making-executable>false</thrift.skip-making-executable>
@@ -1067,19 +1070,6 @@
                                     <outputDirectory>${project.build.directory}/generated-sources-go</outputDirectory>
                                 </configuration>
                             </execution>
-                            <execution>
-                                <id>generate-thrift-sources-cpp</id>
-                                <phase>generate-sources</phase>
-                                <goals>
-                                    <goal>compile</goal>
-                                </goals>
-                                <configuration>
-                                    <generator>cpp</generator>
-                                    <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable>
-                                    <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot>
-                                    <outputDirectory>${project.build.directory}/generated-sources-cpp</outputDirectory>
-                                </configuration>
-                            </execution>
                         </executions>
                     </plugin>
                 </plugins>