如何在VS Code中从本地工作区编译IBM i环境的源成员?
无需手动复制本地文件即可编译IBM i RPG代码的方案
以下是几种直接从VS Code本地工作区编译RPG代码的可行方式:
1. 通过SSH自动传输临时文件并编译
配置VS Code的编译任务,借助SSH命令链实现本地文件临时上传、编译、临时文件清理的自动化流程:
- 在
.vscode/tasks.json中添加如下任务配置:
该流程会自动完成:在IBM i的QTEMP创建临时源文件库→上传本地当前文件到临时库→执行{ "version": "2.0.0", "tasks": [ { "label": "Compile Local RPG to IBM i", "type": "shell", "command": "ssh ibmi-user@ibmi-host 'CRTSRCPF FILE(QTEMP/RPGTMP) RCDLEN(112)' && scp ${file} ibmi-user@ibmi-host:/QSYS.LIB/QTEMP.LIB/RPGTMP.FILE/${fileBasename}.MBR && ssh ibmi-user@ibmi-host 'CRTBNDRPG PGM(QGPL/${fileBasenameNoExtension}) SRCFILE(QTEMP/RPGTMP) SRCMBR(${fileBasename})' && ssh ibmi-user@ibmi-host 'DLTF FILE(QTEMP/RPGTMP)'", "group": { "kind": "build", "isDefault": true }, "problemMatcher": [] } ] }CRTBNDRPG编译→编译完成后删除临时源文件。
2. 挂载本地工作区到IBM i PASE环境
如果本地机器和IBM i网络连通,可通过NFS或SMB将VS Code本地工作区挂载到IBM i的PASE环境,直接引用本地文件路径编译:
- 先在IBM i上挂载本地工作区(以SMB为例):
mount -t cifs //本地IP/工作区路径 /mnt/local-workspace -o username=本地用户名,password=本地密码 - 然后使用源流文件编译命令直接指向挂载路径的文件:
CRTBNDRPG PGM(QGPL/目标程序名) SRCSTMF('/mnt/local-workspace/你的RPG文件名.rpgle')
3. 配置IBM i开发工具的本地文件编译规则
使用官方的IBM i Development Pack for VS Code时,可调整编译命令配置,利用工具内置的自动文件同步能力:
- 打开VS Code设置,找到
IBM i: Compile Commands - 新增RPG编译规则,使用工具内置变量指向本地文件的远程临时路径:
工具会自动将本地文件上传到IBM i的临时目录,编译完成后可自动清理临时文件,无需手动复制操作。CRTBNDRPG PGM(QGPL/${member}) SRCSTMF('${localFileRemotePath}')
内容的提问来源于stack exchange,提问作者Digvijay
相关产品推荐
相关产品推荐

