From 723b1ccca071772f7d7ad3481740624da6bc91df Mon Sep 17 00:00:00 2001
From: bwcx_jzy
- 👉 International Station:https://jpom.dromara.org 👈 -
👉Mainland Station:https://jpom.top/ 👈
+[https://jpom.top/pages/project-suspended/](https://jpom.top/pages/project-suspended/) + ## 😭 Do you experience these pain points in your daily development? - **No dedicated operations team, so developers have to handle operations tasks**, including manual project building and deployment. diff --git a/README.md b/README.md index 356846340..0f2b25ecb 100644 --- a/README.md +++ b/README.md @@ -40,14 +40,12 @@ -- 👉 国际站:https://jpom.dromara.org 👈 -
-👉 大陆站:https://jpom.top 👈
+[https://jpom.top/pages/project-suspended/](https://jpom.top/pages/project-suspended/) + ## 😭 日常开发中,您是否有以下痛点? - **团队中没有专业的运维,开发还要做运维的活**,需要自己手动构建、部署项目。 -- Gitee From 3581ceeee3d36162fc6fa5c8290394e652778837 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=87=89=E6=8B=8C=E8=A5=BF=E7=93=9C?= <12593952+cold-watermelon-api@user.noreply.gitee.com> Date: Mon, 22 Jun 2026 06:20:09 +0000 Subject: [PATCH 2/7] update modules/server/src/main/java/io/jpom/system/ServerLogbackConfig.java. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 凉拌西瓜 <12593952+cold-watermelon-api@user.noreply.gitee.com> --- .../src/main/java/io/jpom/system/ServerLogbackConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/server/src/main/java/io/jpom/system/ServerLogbackConfig.java b/modules/server/src/main/java/io/jpom/system/ServerLogbackConfig.java index d9ee6e7e1..d7bec0dbb 100644 --- a/modules/server/src/main/java/io/jpom/system/ServerLogbackConfig.java +++ b/modules/server/src/main/java/io/jpom/system/ServerLogbackConfig.java @@ -5,7 +5,7 @@ * You may obtain a copy of Mulan PSL v2 at: * http://license.coscl.org.cn/MulanPSL2 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. - * See the Mulan PSL v2 for more details. + * See the Mulan PSL v2 for more details. */ package io.jpom.system; -- Gitee From 20604c0c33b5c660f3bdd68f280fcabffd857dc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=87=89=E6=8B=8C=E8=A5=BF=E7=93=9C?= <12593952+cold-watermelon-api@user.noreply.gitee.com> Date: Mon, 22 Jun 2026 06:21:52 +0000 Subject: [PATCH 3/7] update modules/server/src/main/java/io/jpom/JpomServerApplication.java. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 凉拌西瓜 <12593952+cold-watermelon-api@user.noreply.gitee.com> --- modules/server/src/main/java/io/jpom/JpomServerApplication.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/server/src/main/java/io/jpom/JpomServerApplication.java b/modules/server/src/main/java/io/jpom/JpomServerApplication.java index 608bf89b9..394335d6a 100644 --- a/modules/server/src/main/java/io/jpom/JpomServerApplication.java +++ b/modules/server/src/main/java/io/jpom/JpomServerApplication.java @@ -5,7 +5,7 @@ * You may obtain a copy of Mulan PSL v2 at: * http://license.coscl.org.cn/MulanPSL2 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. - * See the Mulan PSL v2 for more details. + * See the Mulan PSL v2 for more details. */ package io.jpom; -- Gitee From ccf0b72043f2d9e2fdbf7424f7e5f3991b90d50e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=87=89=E6=8B=8C=E8=A5=BF=E7=93=9C?= <12593952+cold-watermelon-api@user.noreply.gitee.com> Date: Mon, 22 Jun 2026 06:23:35 +0000 Subject: [PATCH 4/7] update modules/server/src/main/java/org/dromara/jpom/JpomServerApplication.java. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 凉拌西瓜 <12593952+cold-watermelon-api@user.noreply.gitee.com> --- .../src/main/java/org/dromara/jpom/JpomServerApplication.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/server/src/main/java/org/dromara/jpom/JpomServerApplication.java b/modules/server/src/main/java/org/dromara/jpom/JpomServerApplication.java index 8e71c8046..cba0afc3c 100644 --- a/modules/server/src/main/java/org/dromara/jpom/JpomServerApplication.java +++ b/modules/server/src/main/java/org/dromara/jpom/JpomServerApplication.java @@ -36,7 +36,7 @@ import org.springframework.context.ApplicationContext; public class JpomServerApplication { /** - * 启动执行 + * 启动执行 ** --rest:ip_config 重置 IP 授权配置 *
--
Gitee
From e2a6e05c92410c9c98155ef9d156a7ac107e1ddd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=87=89=E6=8B=8C=E8=A5=BF=E7=93=9C?=
<12593952+cold-watermelon-api@user.noreply.gitee.com>
Date: Mon, 22 Jun 2026 08:29:38 +0000
Subject: [PATCH 5/7] update
modules/server/src/main/java/org/dromara/jpom/JpomServerApplication.java.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: 凉拌西瓜 <12593952+cold-watermelon-api@user.noreply.gitee.com>
---
.../src/main/java/org/dromara/jpom/JpomServerApplication.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/server/src/main/java/org/dromara/jpom/JpomServerApplication.java b/modules/server/src/main/java/org/dromara/jpom/JpomServerApplication.java
index cba0afc3c..512ca4745 100644
--- a/modules/server/src/main/java/org/dromara/jpom/JpomServerApplication.java
+++ b/modules/server/src/main/java/org/dromara/jpom/JpomServerApplication.java
@@ -5,7 +5,7 @@
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
- * See the Mulan PSL v2 for more details.
+ * See the Mulan PSL v2 for more details.
*/
package org.dromara.jpom;
--
Gitee
From 043bfd1ba488aae1a84f6ee5b85160b66d954464 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=87=89=E6=8B=8C=E8=A5=BF=E7=93=9C?=
<12593952+cold-watermelon-api@user.noreply.gitee.com>
Date: Mon, 22 Jun 2026 08:41:12 +0000
Subject: [PATCH 6/7] update
modules/server/src/main/java/org/dromara/jpom/common/ServerExceptionHandler.java.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: 凉拌西瓜 <12593952+cold-watermelon-api@user.noreply.gitee.com>
---
.../java/org/dromara/jpom/common/ServerExceptionHandler.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/server/src/main/java/org/dromara/jpom/common/ServerExceptionHandler.java b/modules/server/src/main/java/org/dromara/jpom/common/ServerExceptionHandler.java
index 5b8f4382f..c0e5daeff 100644
--- a/modules/server/src/main/java/org/dromara/jpom/common/ServerExceptionHandler.java
+++ b/modules/server/src/main/java/org/dromara/jpom/common/ServerExceptionHandler.java
@@ -25,7 +25,7 @@ import javax.servlet.http.HttpServletRequest;
/**
* 全局异常处理
*
- * @author bwcx_jzy
+ * @author bwcx_jzy
* @since 2019/04/17
*/
@RestControllerAdvice
--
Gitee
From 6e1e080d41f39028fff5061b9bc66b82a2629be3 Mon Sep 17 00:00:00 2001
From: liiushuai <18075080147@163.com>
Date: Mon, 22 Jun 2026 16:44:53 +0800
Subject: [PATCH 7/7] =?UTF-8?q?feat(build):=20=E6=B7=BB=E5=8A=A0=E6=9E=84?=
=?UTF-8?q?=E5=BB=BA=E5=B7=AE=E5=BC=82=E8=B7=AF=E5=BE=84=E8=BF=87=E6=BB=A4?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 在AntPathUtil中新增matchAny方法实现Ant路径规则匹配
- 实现matchDiffPath方法支持include和exclude路径过滤逻辑
- 在BuildExecuteManage中集成Git和SVN变更文件检测
- 添加getGitChangedFiles和getSvnChangedFiles方法获取变更文件列表
- 在BuildExtraModule中新增diffIncludePath和diffExcludePath字段
- 在前端编辑页面添加路径过滤配置输入框
- 添加国际化支持包括监听路径和排除路径的描述信息
---
.../jpom/build/BuildExecuteManage.java | 132 ++++++++++++++++++
.../dromara/jpom/build/BuildExtraModule.java | 14 ++
.../org/dromara/jpom/util/AntPathUtil.java | 54 +++++++
web-vue/src/i18n/locales/en_us.json | 6 +
web-vue/src/i18n/locales/zh_cn.json | 6 +
web-vue/src/pages/build/edit.vue | 32 +++++
6 files changed, 244 insertions(+)
diff --git a/modules/server/src/main/java/org/dromara/jpom/build/BuildExecuteManage.java b/modules/server/src/main/java/org/dromara/jpom/build/BuildExecuteManage.java
index 410a0e4d3..3b2e4109d 100644
--- a/modules/server/src/main/java/org/dromara/jpom/build/BuildExecuteManage.java
+++ b/modules/server/src/main/java/org/dromara/jpom/build/BuildExecuteManage.java
@@ -485,6 +485,34 @@ public class BuildExecuteManage implements Runnable {
logRecorder.systemError(format);
throw new DiyInterruptException(format);
}
+ // 文件路径级差异过滤:只有指定路径下的文件变更才触发构建
+ if (StrUtil.isNotEmpty(repositoryLastCommitId)) {
+ String includePath = buildExtraModule.getDiffIncludePath();
+ String excludePath = buildExtraModule.getDiffExcludePath();
+ if (StrUtil.isNotEmpty(includePath) || StrUtil.isNotEmpty(excludePath)) {
+ List
+ * svn diff --summarize 输出格式示例:
+ *
+ * 支持直接配置目录路径(如 /modules/server),会自动尝试目录下的所有文件匹配。
+ * 即配置 /modules/server 等价于同时匹配 /modules/server 和 /modules/server/**
+ *
+ * @param path 以/开头的文件路径
+ * @param rules 逗号分隔的Ant规则,null或空返回false
+ * @return true 如果匹配任一规则
+ */
+ public static boolean matchAny(String path, String rules) {
+ if (StrUtil.isEmpty(rules)) {
+ return false;
+ }
+ List
+ * includePath为空 → 通过(向后兼容)
+ * includePath非空 → 至少匹配一个 → 再检查excludePath排除
+ *
+ * @param path 变更文件的仓库相对路径
+ * @param includePath 包含规则(逗号分隔),null或空表示不过滤
+ * @param excludePath 排除规则(逗号分隔),null或空表示不排除
+ * @return true 表示该文件变更有效(触发构建)
+ */
+ public static boolean matchDiffPath(String path, String includePath, String excludePath) {
+ String normalizedPath = FileUtil.normalize(StrUtil.SLASH + path);
+ if (StrUtil.isNotEmpty(includePath) && !matchAny(normalizedPath, includePath)) {
+ return false;
+ }
+ if (StrUtil.isNotEmpty(excludePath) && matchAny(normalizedPath, excludePath)) {
+ return false;
+ }
+ return true;
+ }
}
diff --git a/web-vue/src/i18n/locales/en_us.json b/web-vue/src/i18n/locales/en_us.json
index 4ff062766..99677f171 100644
--- a/web-vue/src/i18n/locales/en_us.json
+++ b/web-vue/src/i18n/locales/en_us.json
@@ -109,6 +109,12 @@
"i18n_0af04cdc22":"Supports filling in two ways:",
"i18n_0af5d9f8e8":"The current area is a system management and asset management center",
"i18n_0b23d2f584":"differential construction",
+ "i18n_0b23d2f584_include":"Watch Path",
+ "i18n_0b23d2f584_exclude":"Exclude Path",
+ "i18n_diff_include_desc":"Directory path or Ant-style wildcards, comma separated. Build only when changed files match. Empty = watch all",
+ "i18n_diff_include_ph":"e.g.: /modules/server,/modules/common,/pom.xml",
+ "i18n_diff_exclude_desc":"Directory path or Ant-style wildcards, comma separated. Changed files matching these are excluded",
+ "i18n_diff_exclude_ph":"e.g.: /docs,/**/*.md",
"i18n_0b2fab7493":"For the current SSH authorization directory (file directory, file suffix, prohibit command), please go to [System Management] - > [Asset Management] - > [SSH Management] - > Operation Bar - > Association Button - > Corresponding Workspace - > Operation Bar - > Configuration Button",
"i18n_0b3edfaf28":"Set memory limits.",
"i18n_0b58866c3e":"Breakpoint/sharding single file download",
diff --git a/web-vue/src/i18n/locales/zh_cn.json b/web-vue/src/i18n/locales/zh_cn.json
index 918c62803..11afd90ec 100644
--- a/web-vue/src/i18n/locales/zh_cn.json
+++ b/web-vue/src/i18n/locales/zh_cn.json
@@ -109,6 +109,12 @@
"i18n_0af04cdc22": "支持两种方式填充:",
"i18n_0af5d9f8e8": "当前区域为系统管理、资产管理中心",
"i18n_0b23d2f584": "差异构建",
+ "i18n_0b23d2f584_include": "监听路径",
+ "i18n_0b23d2f584_exclude": "排除路径",
+ "i18n_diff_include_desc": "支持目录路径或Ant风格通配,逗号分隔多个。仅当变更文件匹配时才触发构建。为空=全部监听",
+ "i18n_diff_include_ph": "如: /modules/server,/modules/common,/pom.xml",
+ "i18n_diff_exclude_desc": "支持目录路径或Ant风格通配,逗号分隔。匹配的变更文件将被排除",
+ "i18n_diff_exclude_ph": "如: /docs,/**/*.md",
"i18n_0b2fab7493": "当前 SSH 的授权目录(文件目录、文件后缀、禁止命令)需要请到 【系统管理】-> 【资产管理】-> 【SSH 管理】-> 操作栏中->关联按钮->对应工作空间->操作栏中->配置按钮",
"i18n_0b3edfaf28": "设置内存限制。",
"i18n_0b58866c3e": "断点/分片单文件下载",
diff --git a/web-vue/src/pages/build/edit.vue b/web-vue/src/pages/build/edit.vue
index 144e48cc5..bbb57a2f0 100644
--- a/web-vue/src/pages/build/edit.vue
+++ b/web-vue/src/pages/build/edit.vue
@@ -963,6 +963,38 @@
+
+ * M src/main/App.java
+ * A src/main/NewFile.java
+ * D docs/old.txt
+ *
+ * 第一个字符为状态码(M/A/D/R),后面是空格+文件路径
+ *
+ * @param oldRevision 旧版本号
+ * @param newRevision 新版本号
+ * @return 以/开头的相对路径列表,失败返回null
+ */
+ private List