如何将Drools Workbench中新建文件同步至其他克隆仓库?
针对你这种多Drools Workbench对应同结构GitHub仓库的场景,我整理了几个实用的同步方案,帮你把新建的文件推送到其他Workbench:
方案1:手动Git同步(适合少量Workbench实例)
每个Workbench对应的都是独立的GitHub仓库克隆,你可以按以下步骤操作:
- 在新建文件的Workbench本地仓库中,先提交并推送变更到远程分支:
git add . git commit -m "Add new files: xxx.gdst and other resources" git push origin <your-target-branch> - 逐个登录其他Workbench的服务器,进入对应仓库目录,拉取最新变更:
git pull origin <your-target-branch> - 最后刷新对应Workbench的项目视图,或者重启服务,确保新文件被加载生效。
方案2:编写脚本自动化同步(适合多实例场景)
如果有很多Workbench实例,手动操作效率太低,写个脚本就能批量搞定:
- 先在源Workbench仓库完成提交推送(和方案1第一步一致)
- 编写Shell或Python脚本,遍历所有目标Workbench的仓库路径,自动执行拉取命令。比如Shell脚本示例:
#!/bin/bash # 定义所有目标Workbench的仓库路径 REPO_LOCATIONS=( "/opt/drools-workbench/repos/repo-1" "/opt/drools-workbench/repos/repo-2" "/opt/drools-workbench/repos/repo-3" ) TARGET_BRANCH="main" for repo_path in "${REPO_LOCATIONS[@]}" do echo "Starting sync for $repo_path..." cd "$repo_path" || { echo "Failed to access $repo_path"; continue; } git pull origin "$TARGET_BRANCH" echo "Sync completed for $repo_path" cd - > /dev/null || exit 1 done - 给脚本添加执行权限(
chmod +x sync-workbench-files.sh),需要同步时运行即可,也可以配置定时任务定期同步。
方案3:通过Drools Workbench REST API同步(原生无命令行操作)
Drools Workbench提供了REST API来管理项目文件,完全不需要接触服务器Git仓库:
- 首先从源Workbench导出新建文件的内容:
发送带身份验证的GET请求(比如用curl):curl -u username:password "http://source-workbench-url/rest/repositories/<repo-name>/projects/<project-name>/files/path/to/new-file.gdst" - 然后遍历其他Workbench实例,用PUT请求将文件上传到对应路径:
这种方法更贴合Workbench的原生工作流,适合不想操作服务器命令行的场景。curl -u username:password -X PUT -H "Content-Type: text/plain" --data-binary "@local-copy-of-file.gdst" "http://target-workbench-url/rest/repositories/<repo-name>/projects/<project-name>/files/path/to/new-file.gdst"
关键注意事项
- 因为各仓库的
.gdst内容不同,同步前一定要检查git status,确保只提交你新增的文件,不要误修改或覆盖差异化的.gdst文件。 - 如果用Git同步,要保证所有Workbench服务器都有GitHub仓库的访问权限(比如配置SSH密钥或者存储HTTPS凭证),避免拉取/推送失败。
- 部分情况下Workbench会缓存项目数据,同步完成后记得刷新项目视图,必要时重启服务确保新文件生效。
内容的提问来源于stack exchange,提问作者Stefan Tasic
相关产品推荐
相关产品推荐

