update pom
diff --git a/pom.xml b/pom.xml
index 19159c6..4aecfdd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -118,9 +118,19 @@
         <!--  Maven Plugins -->
         <maven-assembly-plugin.version>3.1.1</maven-assembly-plugin.version>
         <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
-        <maven-jar-plugin.version>3.1.2</maven-jar-plugin.version>
-        <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
+        <maven-deploy-plugin.version>3.0.0-M1</maven-deploy-plugin.version>
         <maven-enforcer-plugin.version>3.0.0-M2</maven-enforcer-plugin.version>
+        <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
+        <maven-jar-plugin.version>3.1.2</maven-jar-plugin.version>
+        <maven-javadoc-plugin.version>3.1.1</maven-javadoc-plugin.version>
+        <maven-release-plugin.version>2.5.3</maven-release-plugin.version>
+        <maven-remote-resources-plugin.version>[1.0,)</maven-remote-resources-plugin.version>
+        <maven-source-plugin.version>3.1.0</maven-source-plugin.version>
+        <maven-surefire-plugin.version>3.0.0-M3</maven-surefire-plugin.version>
+        
+        <!-- Apache Plugins -->
+        <apache-rat-plugin.version>0.13</apache-rat-plugin.version>
+            
 
         <!-- org.jacoco Maven Plugins -->
         <jacoco-maven-plugin.version>0.8.4</jacoco-maven-plugin.version>
@@ -131,7 +141,7 @@
         <!-- other -->
         <reproducible-build-maven-plugin.version>0.4</reproducible-build-maven-plugin.version>
         <lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
-        <maven-remote-resources-plugin.version>[1.0,)</maven-remote-resources-plugin.version>
+        <git-commit-id-plugin.version>2.2.5</git-commit-id-plugin.version>
     </properties>
 
     <repositories>
@@ -197,7 +207,8 @@
             <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-deploy-plugin</artifactId>
-              <!-- Apache Parent pom, apache-release profile -->
+              <version>${maven-deploy-plugin.version}</version>
+              <!-- Apache Parent pom: apache-release profile -->
               <!-- Druid: PM, Beam 2.4: release, Pinot: none, Dubbo: build -->
               <configuration>
                 <updateReleaseInfo>true</updateReleaseInfo>
@@ -207,6 +218,7 @@
             <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-release-plugin</artifactId>
+              <version>${maven-release-plugin.version}</version>
               <!-- Apache Parent pom, pluginManagement-->
               <!-- Druid: PM, Beam 2.4: PM, Pinot: PM, Dubbo: build -->
             </plugin>
@@ -239,6 +251,7 @@
             <plugin> <!--  extends the Parent -->
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-javadoc-plugin</artifactId>
+                <version>${maven-javadoc-plugin.version}</version>
                 <!-- Apache Parent pom, apache-release profile -->
                 <!-- Druid: PM, Beam 2.4: release profile, Pinot: build, reporting, Dubbo: release -->
                 <configuration>
@@ -291,6 +304,7 @@
             <plugin>
               <groupId>org.apache.rat</groupId>
               <artifactId>apache-rat-plugin</artifactId>
+              <version>${apache-rat-plugin.version}</version>
               <!-- Apache Parent pom, pluginManagement-->
               <!-- Druid: rat profile, Beam 2.4: release profile, Pinot: build, reporting, Dubbo: build -->
               <executions>
@@ -319,6 +333,7 @@
             <plugin> <!-- extends parent -->
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-source-plugin</artifactId>
+              <version>${maven-source-plugin.version}</version>
               <!-- Apache Parent pom, apache-release profile -->
               <!-- Druid: none, Beam 2.4: release profile, Pinot: PM, Dubbo: build -->
               <executions>
@@ -342,6 +357,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
+                <version>${maven-surefire-plugin.version}</version>
                  <!-- Apache Parent pom, pluginManagement-->
                  <!-- Druid: profiles: java9+, parallelTest, Beam 2.4: PM, Pinot: build, travis profile, Dubbo: build -->
                 <configuration>
@@ -390,6 +406,51 @@
                 </execution>
               </executions>
             </plugin>
+
+            <plugin>
+                <groupId>pl.project13.maven</groupId>
+                <artifactId>git-commit-id-plugin</artifactId>
+                <version>${git-commit-id-plugin.version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>revision</goal>
+                        </goals>
+                        <phase>initialize</phase>
+                    </execution>
+                </executions>
+                <configuration>
+                    <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
+                    <dateFormatTimeZone>UTC</dateFormatTimeZone>
+                    <verbose>false</verbose>
+                    <skipPoms>false</skipPoms>
+                    <format>json</format>
+                    <generateGitPropertiesFile>true</generateGitPropertiesFile>
+                    <generateGitPropertiesFilename>${project.build.directory}/git.version</generateGitPropertiesFilename>
+                    <failOnNoGitDirectory>true</failOnNoGitDirectory>
+                    <failOnUnableToExtractRepoInfo>true</failOnUnableToExtractRepoInfo>
+                    <commitIdGenerationMode>full</commitIdGenerationMode>
+                    <excludeProperties>
+                        <excludeProperty>git.build.user.email</excludeProperty>
+                        <excludeProperty>git.build.host</excludeProperty>
+                        <excludeProperty>git.commit.id.describe-short</excludeProperty>
+                        <excludeProperty>git.commit.user.*</excludeProperty>
+                        <excludeProperty>git.commit.message.*</excludeProperty>
+                        <excludeProperty>git.closest.tag.*</excludeProperty>
+                        <excludeProperty>git.commit.id.abbrev</excludeProperty>
+                        <excludeProperty>git.dirty</excludeProperty>
+                    </excludeProperties>
+                    <gitDescribe>
+                        <skip>false</skip>
+                        <always>true</always>
+                        <abbrev>7</abbrev>
+                        <dirty>-dirty</dirty>
+                        <tags>true</tags>
+                        <forceLongFormat>true</forceLongFormat>
+                    </gitDescribe>
+                </configuration>
+            </plugin>
+
         </plugins>
     </build>
 
@@ -474,11 +535,11 @@
           <build>
             <plugins>
               <!-- We want to sign the artifacts, POM, and all attached artifacts -->
+              <!-- Apache Parent pom, PM, apache-release profile -->
+              <!-- Druid: none; Beam 2.4: sign profile, Pinot: none, Dubbo: release profile -->
               <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-gpg-plugin</artifactId>
-                <!-- Apache Parent pom, PM, apache-release profile -->
-                <!-- Druid: none; Beam 2.4: sign profile, Pinot: none, Dubbo: release profile -->
                 <version>${maven-gpg-plugin.version}</version>
                 <executions>
                   <execution>
@@ -486,12 +547,13 @@
                     <goals>
                       <goal>sign</goal>
                     </goals>
+                    <phase>verify</phase>
                   </execution>
                 </executions>
               </plugin>
             </plugins>
           </build>
-        </profile>
+        </profile> 
         
         <!-- Disable source release assembly for 'apache-release' profile. 
              This is performed from a script outside Maven-->