You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2023/02/03 05:38:46 UTC

[shardingsphere] branch master updated: Upgrade antlr4 to 4.10.1 (#23937)

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

zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 4afa2947023 Upgrade antlr4 to 4.10.1 (#23937)
4afa2947023 is described below

commit 4afa294702344d0100c48e95717b962889c9e1b5
Author: Zheng Feng <zh...@gmail.com>
AuthorDate: Fri Feb 3 13:38:39 2023 +0800

    Upgrade antlr4 to 4.10.1 (#23937)
    
    * Upgrade antlr4 to 4.10.1
    
    * Fix e2e-agent to setup JDK 11 for building
---
 .github/workflows/e2e-agent.yml                    |  2 +-
 .gitignore                                         |  1 +
 distsql/parser/pom.xml                             | 84 +++++++++++++++------
 features/db-discovery/distsql/parser/pom.xml       | 84 +++++++++++++++------
 features/encrypt/distsql/parser/pom.xml            | 84 +++++++++++++++------
 features/mask/distsql/parser/pom.xml               | 84 +++++++++++++++------
 .../readwrite-splitting/distsql/parser/pom.xml     | 84 +++++++++++++++------
 features/shadow/distsql/parser/pom.xml             | 84 +++++++++++++++------
 features/sharding/distsql/parser/pom.xml           | 86 ++++++++++++++++------
 kernel/authority/distsql/parser/pom.xml            | 84 +++++++++++++++------
 kernel/data-pipeline/distsql/parser/pom.xml        | 86 ++++++++++++++++------
 kernel/parser/distsql/parser/pom.xml               | 84 +++++++++++++++------
 kernel/sql-federation/optimizer/pom.xml            | 81 +++++++++++++++-----
 kernel/sql-translator/distsql/parser/pom.xml       | 84 +++++++++++++++------
 kernel/traffic/distsql/parser/pom.xml              | 84 +++++++++++++++------
 kernel/transaction/distsql/parser/pom.xml          | 84 +++++++++++++++------
 pom.xml                                            |  5 +-
 sql-parser/dialect/mysql/pom.xml                   | 24 +-----
 sql-parser/dialect/opengauss/pom.xml               | 24 +-----
 sql-parser/dialect/oracle/pom.xml                  | 24 +-----
 sql-parser/dialect/pom.xml                         | 65 +++++++++++++++-
 sql-parser/dialect/postgresql/pom.xml              | 24 +-----
 sql-parser/dialect/sql92/pom.xml                   | 24 +-----
 sql-parser/dialect/sqlserver/pom.xml               | 24 +-----
 24 files changed, 973 insertions(+), 421 deletions(-)

diff --git a/.github/workflows/e2e-agent.yml b/.github/workflows/e2e-agent.yml
index 6d327979e0b..e6df0afca2d 100644
--- a/.github/workflows/e2e-agent.yml
+++ b/.github/workflows/e2e-agent.yml
@@ -100,7 +100,7 @@ jobs:
       - uses: actions/setup-java@v3
         with:
           distribution: 'temurin'
-          java-version: '8'
+          java-version: '11'
       - uses: actions/cache@v3
         with:
           path: ~/.m2/repository
diff --git a/.gitignore b/.gitignore
index d85161a2354..fbb3666326e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -49,4 +49,5 @@ Thumbs.db
 # antlr ignore
 gen/
 *.tokens
+**/generated/antlr**
 
diff --git a/distsql/parser/pom.xml b/distsql/parser/pom.xml
index f15f2865739..94af5a20580 100644
--- a/distsql/parser/pom.xml
+++ b/distsql/parser/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-distsql-parser</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -45,25 +49,63 @@
         </dependency>
     </dependencies>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <libDirectory>src/main/antlr4/imports/</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/features/db-discovery/distsql/parser/pom.xml b/features/db-discovery/distsql/parser/pom.xml
index 08d5dc442c4..f62688341a5 100644
--- a/features/db-discovery/distsql/parser/pom.xml
+++ b/features/db-discovery/distsql/parser/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-db-discovery-distsql-parser</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -45,25 +49,63 @@
         </dependency>
     </dependencies>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/db-discovery/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <libDirectory>src/main/antlr4/imports/db-discovery/</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/features/encrypt/distsql/parser/pom.xml b/features/encrypt/distsql/parser/pom.xml
index 474a3fb3cd6..8b0ac57d8c0 100644
--- a/features/encrypt/distsql/parser/pom.xml
+++ b/features/encrypt/distsql/parser/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-encrypt-distsql-parser</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -52,25 +56,63 @@
         </dependency>
     </dependencies>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/encrypt/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <libDirectory>src/main/antlr4/imports/encrypt</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/features/mask/distsql/parser/pom.xml b/features/mask/distsql/parser/pom.xml
index e5ad43498a6..f9cd39cdf81 100644
--- a/features/mask/distsql/parser/pom.xml
+++ b/features/mask/distsql/parser/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-mask-distsql-parser</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -45,25 +49,63 @@
         </dependency>
     </dependencies>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/mask/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <libDirectory>src/main/antlr4/imports/mask/</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/features/readwrite-splitting/distsql/parser/pom.xml b/features/readwrite-splitting/distsql/parser/pom.xml
index 552bd851f58..79e0ae29558 100644
--- a/features/readwrite-splitting/distsql/parser/pom.xml
+++ b/features/readwrite-splitting/distsql/parser/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-readwrite-splitting-distsql-parser</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -45,25 +49,63 @@
         </dependency>
     </dependencies>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/readwrite-splitting/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <libDirectory>src/main/antlr4/imports/readwrite-splitting/</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/features/shadow/distsql/parser/pom.xml b/features/shadow/distsql/parser/pom.xml
index 58aad4df552..fee82851ae6 100644
--- a/features/shadow/distsql/parser/pom.xml
+++ b/features/shadow/distsql/parser/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-shadow-distsql-parser</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -45,25 +49,63 @@
         </dependency>
     </dependencies>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/shadow/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <libDirectory>src/main/antlr4/imports/shadow/</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/features/sharding/distsql/parser/pom.xml b/features/sharding/distsql/parser/pom.xml
index 9fea1be6784..b010ad1b63d 100644
--- a/features/sharding/distsql/parser/pom.xml
+++ b/features/sharding/distsql/parser/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-sharding-distsql-parser</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -45,26 +49,64 @@
         </dependency>
     </dependencies>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr-sharding</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <sourceDirectory>src/main/antlr4/sharding/</sourceDirectory>
-                            <libDirectory>src/main/antlr4/imports/sharding/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <sourceDirectory>src/main/antlr4/sharding/</sourceDirectory>
+                                    <libDirectory>src/main/antlr4/imports/sharding/</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/kernel/authority/distsql/parser/pom.xml b/kernel/authority/distsql/parser/pom.xml
index 35574571a24..632ee2d976e 100644
--- a/kernel/authority/distsql/parser/pom.xml
+++ b/kernel/authority/distsql/parser/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-authority-distsql-parser</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -45,25 +49,63 @@
         </dependency>
     </dependencies>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/authority/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <libDirectory>src/main/antlr4/imports/authority/</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/kernel/data-pipeline/distsql/parser/pom.xml b/kernel/data-pipeline/distsql/parser/pom.xml
index 210afda7d27..38dd063b84d 100644
--- a/kernel/data-pipeline/distsql/parser/pom.xml
+++ b/kernel/data-pipeline/distsql/parser/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-data-pipeline-distsql-parser</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -45,26 +49,64 @@
         </dependency>
     </dependencies>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr-migration</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <sourceDirectory>src/main/antlr4/migration/</sourceDirectory>
-                            <libDirectory>src/main/antlr4/imports/migration/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <sourceDirectory>src/main/antlr4/migration/</sourceDirectory>
+                                    <libDirectory>src/main/antlr4/imports/migration/</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/kernel/parser/distsql/parser/pom.xml b/kernel/parser/distsql/parser/pom.xml
index 93924632d3d..629aaecaf5b 100644
--- a/kernel/parser/distsql/parser/pom.xml
+++ b/kernel/parser/distsql/parser/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-parser-distsql-parser</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -45,25 +49,63 @@
         </dependency>
     </dependencies>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/parser/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <libDirectory>src/main/antlr4/imports/parser/</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/kernel/sql-federation/optimizer/pom.xml b/kernel/sql-federation/optimizer/pom.xml
index b8d06d9bef3..275750af60c 100644
--- a/kernel/sql-federation/optimizer/pom.xml
+++ b/kernel/sql-federation/optimizer/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-sql-federation-optimizer</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -114,23 +118,6 @@
     
     <build>
         <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/org/apache/shardingsphere/sqlfederation/optimizer/parser/rexnode</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
             <plugin>
                 <artifactId>maven-failsafe-plugin</artifactId>
                 <executions>
@@ -145,4 +132,64 @@
             </plugin>
         </plugins>
     </build>
+    
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <libDirectory>src/main/antlr4/org/apache/shardingsphere/sqlfederation/optimizer/parser/rexnode</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/kernel/sql-translator/distsql/parser/pom.xml b/kernel/sql-translator/distsql/parser/pom.xml
index 7e9b6212fb3..5f501758f07 100644
--- a/kernel/sql-translator/distsql/parser/pom.xml
+++ b/kernel/sql-translator/distsql/parser/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-sql-translator-distsql-parser</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -45,25 +49,63 @@
         </dependency>
     </dependencies>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/sqltranslator/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <libDirectory>src/main/antlr4/imports/sqltranslator/</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/kernel/traffic/distsql/parser/pom.xml b/kernel/traffic/distsql/parser/pom.xml
index 026415c364b..d63fd888b57 100644
--- a/kernel/traffic/distsql/parser/pom.xml
+++ b/kernel/traffic/distsql/parser/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-traffic-distsql-parser</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -45,25 +49,63 @@
         </dependency>
     </dependencies>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/traffic/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <libDirectory>src/main/antlr4/imports/traffic/</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/kernel/transaction/distsql/parser/pom.xml b/kernel/transaction/distsql/parser/pom.xml
index be772126f8e..9b00d7ead90 100644
--- a/kernel/transaction/distsql/parser/pom.xml
+++ b/kernel/transaction/distsql/parser/pom.xml
@@ -27,6 +27,10 @@
     <artifactId>shardingsphere-transaction-distsql-parser</artifactId>
     <name>${project.artifactId}</name>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -45,25 +49,63 @@
         </dependency>
     </dependencies>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/transaction/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <libDirectory>src/main/antlr4/imports/transaction/</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/pom.xml b/pom.xml
index 5accf14df0a..4517cbf59e1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,7 +65,7 @@
         <commons-codec.version>1.15</commons-codec.version>
         <transmittable-thread-local.version>2.14.2</transmittable-thread-local.version>
         
-        <antlr4.version>4.9.2</antlr4.version>
+        <antlr4.version>4.10.1</antlr4.version>
         <snakeyaml.version>1.33</snakeyaml.version>
         <gson.version>2.9.1</gson.version>
         <jackson.version>2.13.4</jackson.version>
@@ -148,6 +148,7 @@
         <templating-maven-plugin.version>1.0.0</templating-maven-plugin.version>
         <git-commit-id-plugin.version>4.9.10</git-commit-id-plugin.version>
         <spotless-maven-plugin.version>2.22.1</spotless-maven-plugin.version>
+        <build-helper-maven-plugin.version>3.3.0</build-helper-maven-plugin.version>
     </properties>
     
     <dependencyManagement>
@@ -917,6 +918,8 @@
                         <!-- Helm files -->
                         <exclude>**/.helmignore</exclude>
                         <exclude>**/_helpers.tpl</exclude>
+                        <!-- Antlr generated files -->
+                        <exclude>**/generated/antlr4/**</exclude>
                     </excludes>
                 </configuration>
                 <executions>
diff --git a/sql-parser/dialect/mysql/pom.xml b/sql-parser/dialect/mysql/pom.xml
index f78a2854c17..8d347646017 100644
--- a/sql-parser/dialect/mysql/pom.xml
+++ b/sql-parser/dialect/mysql/pom.xml
@@ -27,25 +27,7 @@
     <artifactId>shardingsphere-sql-parser-mysql</artifactId>
     <name>${project.artifactId}</name>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/mysql/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <properties>
+        <dialect.parser>mysql</dialect.parser>
+    </properties>
 </project>
diff --git a/sql-parser/dialect/opengauss/pom.xml b/sql-parser/dialect/opengauss/pom.xml
index cf00ccd73c1..4baf851ab31 100644
--- a/sql-parser/dialect/opengauss/pom.xml
+++ b/sql-parser/dialect/opengauss/pom.xml
@@ -27,25 +27,7 @@
     <artifactId>shardingsphere-sql-parser-opengauss</artifactId>
     <name>${project.artifactId}</name>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/opengauss/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <properties>
+        <dialect.parser>opengauss</dialect.parser>
+    </properties>
 </project>
diff --git a/sql-parser/dialect/oracle/pom.xml b/sql-parser/dialect/oracle/pom.xml
index 19af4f97f7f..555ae2d8b8b 100644
--- a/sql-parser/dialect/oracle/pom.xml
+++ b/sql-parser/dialect/oracle/pom.xml
@@ -27,25 +27,7 @@
     <artifactId>shardingsphere-sql-parser-oracle</artifactId>
     <name>${project.artifactId}</name>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/oracle/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <properties>
+        <dialect.parser>oracle</dialect.parser>
+    </properties>
 </project>
diff --git a/sql-parser/dialect/pom.xml b/sql-parser/dialect/pom.xml
index 6707e262325..16c42857d57 100644
--- a/sql-parser/dialect/pom.xml
+++ b/sql-parser/dialect/pom.xml
@@ -27,7 +27,6 @@
     <artifactId>shardingsphere-sql-parser-dialect</artifactId>
     <packaging>pom</packaging>
     <name>${project.artifactId}</name>
-    
     <modules>
         <module>sql92</module>
         <module>postgresql</module>
@@ -37,6 +36,10 @@
         <module>opengauss</module>
     </modules>
     
+    <properties>
+        <antlr.output.directory>${basedir}/src/generated/antlr4</antlr.output.directory>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
@@ -68,4 +71,64 @@
             </plugin>
         </plugins>
     </build>
+    
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>1.8</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <version>${build-helper-maven-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>add-source</id>
+                                <goals>
+                                    <goal>add-source</goal>
+                                </goals>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <sources>
+                                        <source>${antlr.output.directory}</source>
+                                    </sources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk11+</id>
+            <activation>
+                <jdk>[11,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.antlr</groupId>
+                        <artifactId>antlr4-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>antlr</id>
+                                <goals>
+                                    <goal>antlr4</goal>
+                                </goals>
+                                <configuration>
+                                    <libDirectory>src/main/antlr4/imports/${dialect.parser}/</libDirectory>
+                                    <outputDirectory>${antlr.output.directory}</outputDirectory>
+                                    <listener>false</listener>
+                                    <visitor>true</visitor>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/sql-parser/dialect/postgresql/pom.xml b/sql-parser/dialect/postgresql/pom.xml
index 79ac7881bad..d76afe59e10 100644
--- a/sql-parser/dialect/postgresql/pom.xml
+++ b/sql-parser/dialect/postgresql/pom.xml
@@ -27,25 +27,7 @@
     <artifactId>shardingsphere-sql-parser-postgresql</artifactId>
     <name>${project.artifactId}</name>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/postgresql/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <properties>
+        <dialect.parser>postgresql</dialect.parser>
+    </properties>
 </project>
diff --git a/sql-parser/dialect/sql92/pom.xml b/sql-parser/dialect/sql92/pom.xml
index 5c1a13f6f2c..64808b4dd39 100644
--- a/sql-parser/dialect/sql92/pom.xml
+++ b/sql-parser/dialect/sql92/pom.xml
@@ -27,25 +27,7 @@
     <artifactId>shardingsphere-sql-parser-sql92</artifactId>
     <name>${project.artifactId}</name>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/sql92/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <properties>
+        <dialect.parser>sql92</dialect.parser>
+    </properties>
 </project>
diff --git a/sql-parser/dialect/sqlserver/pom.xml b/sql-parser/dialect/sqlserver/pom.xml
index 8dbef6259e2..5b00eb5ab6c 100644
--- a/sql-parser/dialect/sqlserver/pom.xml
+++ b/sql-parser/dialect/sqlserver/pom.xml
@@ -27,25 +27,7 @@
     <artifactId>shardingsphere-sql-parser-sqlserver</artifactId>
     <name>${project.artifactId}</name>
     
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.antlr</groupId>
-                <artifactId>antlr4-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>antlr</id>
-                        <goals>
-                            <goal>antlr4</goal>
-                        </goals>
-                        <configuration>
-                            <libDirectory>src/main/antlr4/imports/sqlserver/</libDirectory>
-                            <listener>false</listener>
-                            <visitor>true</visitor>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <properties>
+        <dialect.parser>sqlserver</dialect.parser>
+    </properties>
 </project>