You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampark.apache.org by ta...@apache.org on 2022/09/22 08:30:51 UTC

[incubator-streampark] branch dev updated: [improve] maven build project improve (#1660)

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

tamer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git


The following commit(s) were added to refs/heads/dev by this push:
     new 76a1e3d96 [improve] maven build project improve (#1660)
76a1e3d96 is described below

commit 76a1e3d96dc5928e5330d23657e95b4858b9875d
Author: benjobs <be...@apache.org>
AuthorDate: Thu Sep 22 16:30:43 2022 +0800

    [improve] maven build project improve (#1660)
---
 .../streampark/common/conf/CommonConfig.scala      |  6 +++++
 .../src/assembly/script/data/mysql-data.sql        | 29 +++++++++++-----------
 .../src/assembly/script/data/pgsql-data.sql        | 29 +++++++++++-----------
 .../src/assembly/script/upgrade/mysql-upgrade.sql  |  2 ++
 .../streampark/console/core/entity/Project.java    | 16 +++++++++---
 .../console/core/runner/EnvInitializer.java        |  5 ++++
 .../console/core/service/SettingService.java       |  4 ++-
 .../core/service/impl/ProjectServiceImpl.java      |  2 +-
 .../core/service/impl/SettingServiceImpl.java      |  5 ++++
 .../src/main/resources/db/data-h2.sql              | 29 +++++++++++-----------
 .../src/assets/icons/settings.svg                  |  1 +
 .../src/components/SvgIcon/index.vue               |  7 ++++--
 .../streampark-console-webapp/src/core/icons.js    |  4 ++-
 .../src/views/flink/setting/View.vue               |  6 +++++
 .../streampark/flink/packer/maven/MavenTool.scala  |  3 ++-
 15 files changed, 97 insertions(+), 51 deletions(-)

diff --git a/streampark-common/src/main/scala/org/apache/streampark/common/conf/CommonConfig.scala b/streampark-common/src/main/scala/org/apache/streampark/common/conf/CommonConfig.scala
index 92af75c29..fc4a6cdf7 100644
--- a/streampark-common/src/main/scala/org/apache/streampark/common/conf/CommonConfig.scala
+++ b/streampark-common/src/main/scala/org/apache/streampark/common/conf/CommonConfig.scala
@@ -65,6 +65,12 @@ object CommonConfig {
     classType = classOf[JavaLong],
     description = "instantiating connection timeout for DockerHttpClient")
 
+  val MAVEN_SETTINGS_PATH: InternalOption = InternalOption(
+    key = "streampark.maven.settings",
+    defaultValue = null,
+    classType = classOf[String],
+    description = "maven settings.xml full path")
+
   val MAVEN_REMOTE_URL: InternalOption = InternalOption(
     key = "streampark.maven.central.repository",
     defaultValue = "https://repo1.maven.org/maven2/",
diff --git a/streampark-console/streampark-console-service/src/assembly/script/data/mysql-data.sql b/streampark-console/streampark-console-service/src/assembly/script/data/mysql-data.sql
index 0997c0242..0935cb396 100644
--- a/streampark-console/streampark-console-service/src/assembly/script/data/mysql-data.sql
+++ b/streampark-console/streampark-console-service/src/assembly/script/data/mysql-data.sql
@@ -164,20 +164,21 @@ insert into `t_role_menu` values (100062, 100000, 100043);
 -- ----------------------------
 -- Records of t_setting
 -- ----------------------------
-insert into `t_setting` values (1, 'streampark.maven.central.repository', null, 'Maven Central Repository', 'Maven 私服地址', 1);
-insert into `t_setting` values (2, 'streampark.maven.auth.user', null, 'Maven Central Repository Auth User', 'Maven 私服认证用户名', 1);
-insert into `t_setting` values (3, 'streampark.maven.auth.password', null, 'Maven Central Repository Auth Password', 'Maven 私服认证密码', 1);
-insert into `t_setting` values (4, 'streampark.console.webapp.address', null, 'StreamPark Webapp address', 'StreamPark Console Web 应用程序HTTP URL', 1);
-insert into `t_setting` values (5, 'alert.email.host', null, 'Alert Email Smtp Host', '告警邮箱Smtp Host', 1);
-insert into `t_setting` values (6, 'alert.email.port', null, 'Alert Email Smtp Port', '告警邮箱的Smtp Port', 1);
-insert into `t_setting` values (7, 'alert.email.from', null, 'Alert  Email From', '发送告警的邮箱', 1);
-insert into `t_setting` values (8, 'alert.email.userName', null, 'Alert  Email User', '用来发送告警邮箱的认证用户名', 1);
-insert into `t_setting` values (9, 'alert.email.password', null, 'Alert Email Password', '用来发送告警邮箱的认证密码', 1);
-insert into `t_setting` values (10, 'alert.email.ssl', 'false', 'Alert Email Is SSL', '发送告警的邮箱是否开启SSL', 2);
-insert into `t_setting` values (11, 'docker.register.address', null, 'Docker Register Address', 'Docker容器服务地址', 1);
-insert into `t_setting` values (12, 'docker.register.user', null, 'Docker Register User', 'Docker容器服务认证用户名', 1);
-insert into `t_setting` values (13, 'docker.register.password', null, 'Docker Register Password', 'Docker容器服务认证密码', 1);
-insert into `t_setting` values (14, 'docker.register.namespace', null, 'Namespace for docker image used in docker building env and target image register', 'Docker命名空间', 1);
+insert into `t_setting` values (1, 'streampark.maven.settings', null, 'Maven Settings File Path', 'Maven Settings.xml 完整路径', 1);
+insert into `t_setting` values (2, 'streampark.maven.central.repository', null, 'Maven Central Repository', 'Maven 私服地址', 1);
+insert into `t_setting` values (3, 'streampark.maven.auth.user', null, 'Maven Central Repository Auth User', 'Maven 私服认证用户名', 1);
+insert into `t_setting` values (4, 'streampark.maven.auth.password', null, 'Maven Central Repository Auth Password', 'Maven 私服认证密码', 1);
+insert into `t_setting` values (5, 'streampark.console.webapp.address', null, 'StreamPark Webapp address', 'StreamPark Console Web 应用程序HTTP URL', 1);
+insert into `t_setting` values (6, 'alert.email.host', null, 'Alert Email Smtp Host', '告警邮箱Smtp Host', 1);
+insert into `t_setting` values (7, 'alert.email.port', null, 'Alert Email Smtp Port', '告警邮箱的Smtp Port', 1);
+insert into `t_setting` values (8, 'alert.email.from', null, 'Alert  Email From', '发送告警的邮箱', 1);
+insert into `t_setting` values (9, 'alert.email.userName', null, 'Alert  Email User', '用来发送告警邮箱的认证用户名', 1);
+insert into `t_setting` values (10, 'alert.email.password', null, 'Alert Email Password', '用来发送告警邮箱的认证密码', 1);
+insert into `t_setting` values (11, 'alert.email.ssl', 'false', 'Alert Email Is SSL', '发送告警的邮箱是否开启SSL', 2);
+insert into `t_setting` values (12, 'docker.register.address', null, 'Docker Register Address', 'Docker容器服务地址', 1);
+insert into `t_setting` values (13, 'docker.register.user', null, 'Docker Register User', 'Docker容器服务认证用户名', 1);
+insert into `t_setting` values (14, 'docker.register.password', null, 'Docker Register Password', 'Docker容器服务认证密码', 1);
+insert into `t_setting` values (15, 'docker.register.namespace', null, 'Namespace for docker image used in docker building env and target image register', 'Docker命名空间', 1);
 
 -- ----------------------------
 -- Records of t_user
diff --git a/streampark-console/streampark-console-service/src/assembly/script/data/pgsql-data.sql b/streampark-console/streampark-console-service/src/assembly/script/data/pgsql-data.sql
index 03670a116..b47225b09 100644
--- a/streampark-console/streampark-console-service/src/assembly/script/data/pgsql-data.sql
+++ b/streampark-console/streampark-console-service/src/assembly/script/data/pgsql-data.sql
@@ -161,20 +161,21 @@ insert into "public"."t_role_menu" values (100062, 100000, 100043);
 -- ----------------------------
 -- Records of t_setting
 -- ----------------------------
-insert into "public"."t_setting" values (1, 'streampark.maven.central.repository', null, 'Maven Central Repository', 'Maven 私服地址', 1);
-insert into "public"."t_setting" values (2, 'streampark.maven.auth.user', null, 'Maven Central Repository Auth User', 'Maven 私服认证用户名', 1);
-insert into "public"."t_setting" values (3, 'streampark.maven.auth.password', null, 'Maven Central Repository Auth Password', 'Maven 私服认证密码', 1);
-insert into "public"."t_setting" values (4, 'streampark.console.webapp.address', null, 'StreamPark Webapp address', 'StreamPark Console Web 应用程序HTTP URL', 1);
-insert into "public"."t_setting" values (5, 'alert.email.host', null, 'Alert Email Smtp Host', '告警邮箱Smtp Host', 1);
-insert into "public"."t_setting" values (6, 'alert.email.port', null, 'Alert Email Smtp Port', '告警邮箱的Smtp Port', 1);
-insert into "public"."t_setting" values (7, 'alert.email.from', null, 'Alert  Email From', '发送告警的邮箱', 1);
-insert into "public"."t_setting" values (8, 'alert.email.userName', null, 'Alert  Email User', '用来发送告警邮箱的认证用户名', 1);
-insert into "public"."t_setting" values (9, 'alert.email.password', null, 'Alert Email Password', '用来发送告警邮箱的认证密码', 1);
-insert into "public"."t_setting" values (10, 'alert.email.ssl', 'false', 'Alert Email Is SSL', '发送告警的邮箱是否开启SSL', 2);
-insert into "public"."t_setting" values (11, 'docker.register.address', null, 'Docker Register Address', 'Docker容器服务地址', 1);
-insert into "public"."t_setting" values (12, 'docker.register.user', null, 'Docker Register User', 'Docker容器服务认证用户名', 1);
-insert into "public"."t_setting" values (13, 'docker.register.password', null, 'Docker Register Password', 'Docker容器服务认证密码', 1);
-insert into "public"."t_setting" values (14, 'docker.register.namespace', null, 'Namespace for docker image used in docker building env and target image register', 'Docker命名空间', 1);
+insert into "public"."t_setting" values (1, 'streampark.maven.settings', null, 'Maven Settings File Path', 'Maven Settings.xml 完整路径', 1);
+insert into "public"."t_setting" values (2, 'streampark.maven.central.repository', null, 'Maven Central Repository', 'Maven 私服地址', 1);
+insert into "public"."t_setting" values (3, 'streampark.maven.auth.user', null, 'Maven Central Repository Auth User', 'Maven 私服认证用户名', 1);
+insert into "public"."t_setting" values (4, 'streampark.maven.auth.password', null, 'Maven Central Repository Auth Password', 'Maven 私服认证密码', 1);
+insert into "public"."t_setting" values (5, 'streampark.console.webapp.address', null, 'StreamPark Webapp address', 'StreamPark Console Web 应用程序HTTP URL', 1);
+insert into "public"."t_setting" values (6, 'alert.email.host', null, 'Alert Email Smtp Host', '告警邮箱Smtp Host', 1);
+insert into "public"."t_setting" values (7, 'alert.email.port', null, 'Alert Email Smtp Port', '告警邮箱的Smtp Port', 1);
+insert into "public"."t_setting" values (8, 'alert.email.from', null, 'Alert  Email From', '发送告警的邮箱', 1);
+insert into "public"."t_setting" values (9, 'alert.email.userName', null, 'Alert  Email User', '用来发送告警邮箱的认证用户名', 1);
+insert into "public"."t_setting" values (10, 'alert.email.password', null, 'Alert Email Password', '用来发送告警邮箱的认证密码', 1);
+insert into "public"."t_setting" values (11, 'alert.email.ssl', 'false', 'Alert Email Is SSL', '发送告警的邮箱是否开启SSL', 2);
+insert into "public"."t_setting" values (12, 'docker.register.address', null, 'Docker Register Address', 'Docker容器服务地址', 1);
+insert into "public"."t_setting" values (13, 'docker.register.user', null, 'Docker Register User', 'Docker容器服务认证用户名', 1);
+insert into "public"."t_setting" values (14, 'docker.register.password', null, 'Docker Register Password', 'Docker容器服务认证密码', 1);
+insert into "public"."t_setting" values (15, 'docker.register.namespace', null, 'Namespace for docker image used in docker building env and target image register', 'Docker命名空间', 1);
 
 
 -- ----------------------------
diff --git a/streampark-console/streampark-console-service/src/assembly/script/upgrade/mysql-upgrade.sql b/streampark-console/streampark-console-service/src/assembly/script/upgrade/mysql-upgrade.sql
index 435c5edf8..9a2b8e4b9 100644
--- a/streampark-console/streampark-console-service/src/assembly/script/upgrade/mysql-upgrade.sql
+++ b/streampark-console/streampark-console-service/src/assembly/script/upgrade/mysql-upgrade.sql
@@ -194,5 +194,7 @@ where `menu_id` = 100021;
 
 update `t_menu` set `menu_name` = 'StreamPark' where `menu_id` = 100013;
 
+insert into `t_setting` values (15, 'streampark.maven.settings', null, 'Maven Settings File Path', 'Maven Settings.xml 完整路径', 1);
+
 set foreign_key_checks = 1;
 -- -------------------------------------- version: 1.2.4 END ---------------------------------------
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java
index 2240380a3..f5094791a 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java
@@ -41,7 +41,6 @@ import java.io.File;
 import java.io.IOException;
 import java.io.Serializable;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
@@ -216,7 +215,7 @@ public class Project implements Serializable {
     }
 
     @JsonIgnore
-    public List<String> getMavenArgs() {
+    public String getMavenArgs() {
         String mvn = "mvn";
         try {
             if (CommonUtils.isWindows()) {
@@ -231,7 +230,18 @@ public class Project implements Serializable {
                 mvn = WebUtils.getAppHome().concat("/bin/mvnw");
             }
         }
-        return Arrays.asList(mvn.concat(" clean package -DskipTests ").concat(StringUtils.isEmpty(this.buildArgs) ? "" : this.buildArgs.trim()));
+
+        StringBuffer cmdBuffer = new StringBuffer(mvn).append(" clean package -DskipTests ");
+
+        String settings = settingService.getMavenSettings();
+        if (StringUtils.isNotEmpty(settings)) {
+            cmdBuffer.append(" --settings ").append(settings);
+        }
+
+        if (StringUtils.isNotEmpty(this.buildArgs)) {
+            cmdBuffer.append(this.buildArgs.trim());
+        }
+        return cmdBuffer.toString();
     }
 
     @JsonIgnore
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/runner/EnvInitializer.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/runner/EnvInitializer.java
index f6c4fd6a3..88e0580e6 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/runner/EnvInitializer.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/runner/EnvInitializer.java
@@ -100,6 +100,11 @@ public class EnvInitializer implements ApplicationRunner {
                 InternalConfigHolder.set(config, springEnv.getProperty(key, config.classType()));
             });
 
+        String mvnSettings = settingService.getMavenSettings();
+        if (StringUtils.isNotEmpty(mvnSettings)) {
+            InternalConfigHolder.set(CommonConfig.MAVEN_SETTINGS_PATH(), mvnSettings);
+        }
+
         String mvnRepository = settingService.getMavenRepository();
         if (StringUtils.isNotEmpty(mvnRepository)) {
             InternalConfigHolder.set(CommonConfig.MAVEN_REMOTE_URL(), mvnRepository);
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java
index b9cf1b590..5014c6c04 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java
@@ -24,10 +24,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
 
 public interface SettingService extends IService<Setting> {
 
+    String KEY_MAVEN_SETTINGS = "streampark.maven.settings";
     String KEY_MAVEN_REPOSITORY = "streampark.maven.central.repository";
     String KEY_MAVEN_AUTH_USER = "streampark.maven.auth.user";
     String KEY_MAVEN_AUTH_PASSWORD = "streampark.maven.auth.password";
-
     String KEY_STREAMPARK_ADDRESS = "streampark.console.webapp.address";
 
     String KEY_ALERT_EMAIL_HOST = "alert.email.host";
@@ -49,6 +49,8 @@ public interface SettingService extends IService<Setting> {
 
     String getStreamParkAddress();
 
+    String getMavenSettings();
+
     String getMavenRepository();
 
     String getMavenAuthUser();
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ProjectServiceImpl.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ProjectServiceImpl.java
index a03e134c7..faf19c098 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ProjectServiceImpl.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ProjectServiceImpl.java
@@ -458,7 +458,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project>
 
     private boolean projectBuild(Project project, String socketId) {
         StringBuilder builder = tailBuffer.get(project.getId());
-        int code = CommandUtils.execute(project.getMavenWorkHome(), project.getMavenArgs(), (line) -> {
+        int code = CommandUtils.execute(project.getMavenWorkHome(), Arrays.asList(project.getMavenArgs()), (line) -> {
             builder.append(line).append("\n");
             if (tailOutMap.containsKey(project.getId())) {
                 if (tailBeginning.containsKey(project.getId())) {
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
index 87fb77076..b753bd144 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
@@ -136,6 +136,11 @@ public class SettingServiceImpl extends ServiceImpl<SettingMapper, Setting>
         return settings.getOrDefault(SettingService.KEY_STREAMPARK_ADDRESS, emptySetting).getSettingValue();
     }
 
+    @Override
+    public String getMavenSettings() {
+        return settings.getOrDefault(SettingService.KEY_MAVEN_SETTINGS, emptySetting).getSettingValue();
+    }
+
     @Override
     public String getMavenRepository() {
         return settings.getOrDefault(SettingService.KEY_MAVEN_REPOSITORY, emptySetting).getSettingValue();
diff --git a/streampark-console/streampark-console-service/src/main/resources/db/data-h2.sql b/streampark-console/streampark-console-service/src/main/resources/db/data-h2.sql
index 1ba24fd0b..54a1663b8 100644
--- a/streampark-console/streampark-console-service/src/main/resources/db/data-h2.sql
+++ b/streampark-console/streampark-console-service/src/main/resources/db/data-h2.sql
@@ -160,20 +160,21 @@ insert into `t_role_menu` values (100062, 100000, 100043);
 -- ----------------------------
 -- Records of t_setting
 -- ----------------------------
-insert into `t_setting` values (1, 'streampark.maven.central.repository', null, 'Maven Central Repository', 'Maven 私服地址', 1);
-insert into `t_setting` values (2, 'streampark.maven.auth.user', null, 'Maven Central Repository Auth User', 'Maven 私服认证用户名', 1);
-insert into `t_setting` values (3, 'streampark.maven.auth.password', null, 'Maven Central Repository Auth Password', 'Maven 私服认证密码', 1);
-insert into `t_setting` values (4, 'streampark.console.webapp.address', null, 'StreamPark Webapp address', 'StreamPark Console Web 应用程序HTTP URL', 1);
-insert into `t_setting` values (5, 'alert.email.host', null, 'Alert Email Smtp Host', '告警邮箱Smtp Host', 1);
-insert into `t_setting` values (6, 'alert.email.port', null, 'Alert Email Smtp Port', '告警邮箱的Smtp Port', 1);
-insert into `t_setting` values (7, 'alert.email.from', null, 'Alert  Email From', '发送告警的邮箱', 1);
-insert into `t_setting` values (8, 'alert.email.userName', null, 'Alert  Email User', '用来发送告警邮箱的认证用户名', 1);
-insert into `t_setting` values (9, 'alert.email.password', null, 'Alert Email Password', '用来发送告警邮箱的认证密码', 1);
-insert into `t_setting` values (10, 'alert.email.ssl', 'false', 'Alert Email Is SSL', '发送告警的邮箱是否开启SSL', 2);
-insert into `t_setting` values (11, 'docker.register.address', null, 'Docker Register Address', 'Docker容器服务地址', 1);
-insert into `t_setting` values (12, 'docker.register.user', null, 'Docker Register User', 'Docker容器服务认证用户名', 1);
-insert into `t_setting` values (13, 'docker.register.password', null, 'Docker Register Password', 'Docker容器服务认证密码', 1);
-insert into `t_setting` values (14, 'docker.register.namespace', null, 'Namespace for docker image used in docker building env and target image register', 'Docker命名空间', 1);
+insert into `t_setting` values (1, 'streampark.maven.settings', null, 'Maven Settings File Path', 'Maven Settings.xml 完整路径', 1);
+insert into `t_setting` values (2, 'streampark.maven.central.repository', null, 'Maven Central Repository', 'Maven 私服地址', 1);
+insert into `t_setting` values (3, 'streampark.maven.auth.user', null, 'Maven Central Repository Auth User', 'Maven 私服认证用户名', 1);
+insert into `t_setting` values (4, 'streampark.maven.auth.password', null, 'Maven Central Repository Auth Password', 'Maven 私服认证密码', 1);
+insert into `t_setting` values (5, 'streampark.console.webapp.address', null, 'StreamPark Webapp address', 'StreamPark Console Web 应用程序HTTP URL', 1);
+insert into `t_setting` values (6, 'alert.email.host', null, 'Alert Email Smtp Host', '告警邮箱Smtp Host', 1);
+insert into `t_setting` values (7, 'alert.email.port', null, 'Alert Email Smtp Port', '告警邮箱的Smtp Port', 1);
+insert into `t_setting` values (8, 'alert.email.from', null, 'Alert  Email From', '发送告警的邮箱', 1);
+insert into `t_setting` values (9, 'alert.email.userName', null, 'Alert  Email User', '用来发送告警邮箱的认证用户名', 1);
+insert into `t_setting` values (10, 'alert.email.password', null, 'Alert Email Password', '用来发送告警邮箱的认证密码', 1);
+insert into `t_setting` values (11, 'alert.email.ssl', 'false', 'Alert Email Is SSL', '发送告警的邮箱是否开启SSL', 2);
+insert into `t_setting` values (12, 'docker.register.address', null, 'Docker Register Address', 'Docker容器服务地址', 1);
+insert into `t_setting` values (13, 'docker.register.user', null, 'Docker Register User', 'Docker容器服务认证用户名', 1);
+insert into `t_setting` values (14, 'docker.register.password', null, 'Docker Register Password', 'Docker容器服务认证密码', 1);
+insert into `t_setting` values (15, 'docker.register.namespace', null, 'Namespace for docker image used in docker building env and target image register', 'Docker命名空间', 1);
 
 -- ----------------------------
 -- Records of t_user
diff --git a/streampark-console/streampark-console-webapp/src/assets/icons/settings.svg b/streampark-console/streampark-console-webapp/src/assets/icons/settings.svg
new file mode 100644
index 000000000..5195b5399
--- /dev/null
+++ b/streampark-console/streampark-console-webapp/src/assets/icons/settings.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1663824447364" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2563" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M361.088 149.482667c0-59.093333 48.384-106.816 107.626667-106.816h86.570666c59.349333 0 107.626667 47.637333 107.626667 106.816v29.162666a368.213333 368.213333 [...]
\ No newline at end of file
diff --git a/streampark-console/streampark-console-webapp/src/components/SvgIcon/index.vue b/streampark-console/streampark-console-webapp/src/components/SvgIcon/index.vue
index 02bfe890e..ec30b1994 100644
--- a/streampark-console/streampark-console-webapp/src/components/SvgIcon/index.vue
+++ b/streampark-console/streampark-console-webapp/src/components/SvgIcon/index.vue
@@ -71,6 +71,7 @@
     <namespace v-if="name==='namespace'"></namespace>
     <auth v-if="name==='auth'"></auth>
     <password v-if="name==='password'"></password>
+    <settings v-if="name==='settings'"></settings>
   </span>
 </template>
 
@@ -127,7 +128,8 @@ import {
   docker,
   namespace,
   auth,
-  password
+  password,
+  settings
 } from '@/core/icons'
 
 export default {
@@ -184,7 +186,8 @@ export default {
     docker,
     namespace,
     auth,
-    password
+    password,
+    settings
   },
   props: {
     name: {
diff --git a/streampark-console/streampark-console-webapp/src/core/icons.js b/streampark-console/streampark-console-webapp/src/core/icons.js
index 5e96d06de..f2b42bccb 100644
--- a/streampark-console/streampark-console-webapp/src/core/icons.js
+++ b/streampark-console/streampark-console-webapp/src/core/icons.js
@@ -75,6 +75,7 @@ import docker from '@/assets/icons/docker.svg?inline'
 import namespace from '@/assets/icons/namespace.svg?inline'
 import auth from '@/assets/icons/auth.svg?inline'
 import password from '@/assets/icons/password.svg?inline'
+import settings from '@/assets/icons/settings.svg?inline'
 
 export {
   alarm,
@@ -128,5 +129,6 @@ export {
   namespace,
   auth,
   password,
-  lark
+  lark,
+  settings
 }
diff --git a/streampark-console/streampark-console-webapp/src/views/flink/setting/View.vue b/streampark-console/streampark-console-webapp/src/views/flink/setting/View.vue
index 3bae76be8..295f75dce 100644
--- a/streampark-console/streampark-console-webapp/src/views/flink/setting/View.vue
+++ b/streampark-console/streampark-console-webapp/src/views/flink/setting/View.vue
@@ -29,6 +29,12 @@
               <a-list>
                 <a-list-item v-for="(item,index) in settings" :key="index" v-if="item.settingKey.indexOf('streampark.maven') > -1">
                   <a-list-item-meta style="width: 50%">
+                    <svg-icon
+                      class="avatar"
+                      name="settings"
+                      size="large"
+                      slot="avatar"
+                      v-if="item.settingKey === 'streampark.maven.settings'"></svg-icon>
                     <svg-icon
                       class="avatar"
                       name="maven"
diff --git a/streampark-flink/streampark-flink-packer/src/main/scala/org/apache/streampark/flink/packer/maven/MavenTool.scala b/streampark-flink/streampark-flink-packer/src/main/scala/org/apache/streampark/flink/packer/maven/MavenTool.scala
index 84e402894..6bf910b0d 100644
--- a/streampark-flink/streampark-flink-packer/src/main/scala/org/apache/streampark/flink/packer/maven/MavenTool.scala
+++ b/streampark-flink/streampark-flink-packer/src/main/scala/org/apache/streampark/flink/packer/maven/MavenTool.scala
@@ -55,7 +55,7 @@ object MavenTool extends Logger {
     Artifact.of("org.apache.logging.log4j:*:*")
   )
 
-  private[this] lazy val remoteRepos: List[RemoteRepository] = {
+  private[this] def getRemoteRepos(): List[RemoteRepository] = {
     val builder = new RemoteRepository.Builder("central", "default", InternalConfigHolder.get(MAVEN_REMOTE_URL))
     val remoteRepository = if (InternalConfigHolder.get(MAVEN_AUTH_USER) == null || InternalConfigHolder.get(MAVEN_AUTH_PASSWORD) == null) {
       builder.build()
@@ -152,6 +152,7 @@ object MavenTool extends Logger {
       val artifacts = mavenArtifacts.map(e => new DefaultArtifact(e.groupId, e.artifactId, "jar", e.version))
       logInfo(s"start resolving dependencies: ${artifacts.mkString}")
 
+      val remoteRepos = getRemoteRepos()
       // read relevant artifact descriptor info
       // plz don't simplify the following lambda syntax to maintain the readability of the code.
       val resolvedArtifacts = artifacts