如何将Linux环境下的Drools Workbench与Git仓库同步?
Drools Workbench 与 Git 仓库同步操作步骤
1. 配置远程Git仓库
- 登录Drools Workbench,进入目标空间(如
MySpace)和对应项目(如reponame) - 点击项目右上角的齿轮图标进入设置,选择Git设置选项
- 在远程仓库配置区点击「添加远程仓库」,填写:
- 远程名称:自定义(如
origin) - Git仓库URL:支持SSH(
ssh://username@git-server:22/repos/reponame.git)或HTTPS格式 - 认证信息:SSH方式需配置对应密钥;HTTPS方式填写用户名和密码
- 远程名称:自定义(如
- 保存配置完成远程仓库绑定
2. 从Git拉取代码到Workbench
- 在项目主界面,点击顶部菜单栏的Git → Pull
- 选择目标远程仓库和分支,确认后执行拉取,手动处理可能出现的代码冲突
3. 将Workbench代码推送到Git
- 完成规则/资产编辑后,点击顶部Git → Commit,填写提交说明并确认提交到本地仓库
- 再次点击Git → Push,选择目标远程仓库和分支,完成推送
4. 自动同步(可选)
- 通过Workbench的REST API实现定时同步,示例命令:
- 拉取:
curl -u admin:password -X POST http://workbench-host:8080/business-central/rest/git/MySpace/reponame/pull - 推送:
curl -u admin:password -X POST http://workbench-host:8080/business-central/rest/git/MySpace/reponame/push
- 拉取:
- 可配合Linux的
crontab设置定时任务,实现自动拉取/推送
解决
spawn git clone ssh://username@localhost:8001/MySpace/reponame 执行失败问题 1. 检查Expect工具是否安装
spawn是Expect工具的专属命令,先确认系统是否安装:
which expect
若无输出,执行安装命令:
- CentOS/RHEL:
yum install expect -y - Ubuntu/Debian:
apt-get install expect -y
2. 验证SSH端口与服务状态
- Drools Workbench的SSH Git服务默认端口为8001,先检查端口是否监听:
netstat -tulpn | grep 8001
- 若端口未监听,检查WildFly/JBoss的
standalone.xml配置,确保包含SSH子系统:
<subsystem xmlns="urn:jboss:domain:ssh:1.0"> <server name="default" port="8001"> <host-key path="${jboss.server.config.dir}/ssh/hostkey"/> <authorized-keys path="${jboss.server.config.dir}/ssh/authorized-keys"/> </server> </subsystem>
3. 确认SSH认证配置
- 确保
username在Workbench中存在,且拥有目标项目的Git访问权限 - 密码认证:需在Expect脚本中添加密码交互逻辑,示例片段:
spawn git clone ssh://username@localhost:8001/MySpace/reponame expect "password:" send "your-workbench-password\r" expect eof
- 密钥认证:将客户端的
~/.ssh/id_rsa.pub内容,添加到Workbench用户设置的SSH密钥列表中
4. 检查Git命令可用性
确认系统已安装Git:
git --version
未安装则执行:
- CentOS/RHEL:
yum install git -y - Ubuntu/Debian:
apt-get install git -y
5. 手动测试克隆命令
先直接执行克隆命令,查看具体错误提示:
git clone ssh://username@localhost:8001/MySpace/reponame
根据错误信息进一步排查(如仓库不存在、权限不足、网络连通性问题等)
内容的提问来源于stack exchange,提问作者Abhijit
相关产品推荐
相关产品推荐

