Sublime Text 运行 Groovy 依赖系统 groovy 命令,90% 失败源于终端中 groovy --version 报错;需用 SDKMAN!(macOS/Linux)或 scoop(Windows)安装并彻底重启 Sublime;构建系统用 "cmd": ["groovy", "$file"] 且 "shell": false;语法高亮靠 Gr8 插件;Gradle 脚本须用 gradlew 执行,不可直调 groovy。

Sublime Text 本身不运行 Groovy,它只调用你系统里装好的 groovy 命令——这一步不通,后面所有高亮、构建、执行全卡死。
确认 groovy 命令在终端能跑通
这是 90% 配置失败的根源。Sublime 的构建系统默认继承系统 PATH,如果终端里执行 groovy --version 报 “command not found”,Sublime 肯定也找不到。
- macOS/Linux:用
sdk install groovy(SDKMAN!),自动配好PATH和GROOVY_HOME - Windows:用
scoop install groovy,比手动解压+配环境变量更稳 - 别只装 JDK 就以为够了——
java -version成功 ≠groovy --version成功 - 装完必须彻底退出 Sublime Text(不是关标签页),再重新打开,否则旧 PATH 不刷新
- Windows 用户注意:
groovy.bat和groovy(无后缀)行为不同;Build System 应调用后者(SDKMAN/Scoop 安装默认提供)
创建并配置 groovy.sublime-build
路径是 Sublime Text → Tools → Build System → New Build System,粘贴以下内容后保存为 groovy.sublime-build:
{
"cmd": ["groovy", "$file"],
"file_regex": "^(*?):([0-9]*):?([0-9]*):? (.*)$",
"working_dir": "${file_path}",
"selector": "source.groovy",
"shell": false
}
- macOS/Linux 和 Windows(用 SDKMAN/Scoop 安装)都用
"cmd": ["groovy", "$file"],不用cmd /c或groovy.bat -
"shell": false更安全,避免 shell 解析干扰路径(尤其含空格或中文时) -
"selector": "source.groovy"让 Ctrl+B 自动触发该构建系统,前提是文件已设对语法高亮 - 如果脚本依赖外部 JAR,得显式加
-cp,比如"cmd": ["groovy", "-cp", "/path/to/lib.jar", "$file"]
让 .groovy 文件正确高亮
默认打开 .groovy 文件是纯文本,没颜色、没关键字识别——这不是构建问题,是语法定义没加载。
- 用 Package Control 安装
Gr8插件(不是老版 Groovy 插件),它支持 Gradle DSL 关键字(如implementation) - 安装后右下角点击 “Plain Text” → “Open all with current extension as” → 选
Gr8/Groovy - 如果
build.gradle还显示成 XML 风格,检查Preferences → Settings – Syntax Specific里是否残留"syntax": "Packages/XML/XML.tmLanguage",删掉它 -
build.gradle.kts是 Kotlin DSL,Gr8不支持——它只管.gradle,.kts得靠 Kotlin 插件 + 手动绑定语法
Gradle 脚本必须用 gradlew 执行,不可直接用 groovy 命令
Gradle 构建脚本不是普通 Groovy 脚本,它依赖 Gradle 运行时上下文(plugins、dependencies 等 DSL 解析器),本地用 groovy build.gradle 执行会直接报错,比如 Could not find method plugins()。
- 推荐配置单独的
gradle.sublime-build,"cmd": ["./gradlew", "$1"](macOS/Linux)或"cmd": ["gradlew.bat", "$1"](Windows) -
$1是占位符,按 Ctrl+B 后输入build或test即可动态传参 - 如果提示
command not found: gradle,说明 PATH 没继承进来——在 Build System 里加"path": "/opt/gradle/bin:/usr/local/bin"(填你实际的 bin 路径) - Gradle DSL 特性在 Sublime 中无法补全/跳转:装了语法高亮 ≠ 有语义感知,不会提示
implementation的可用方法,也不能 Ctrl+Click 跳转到插件源码
最常被忽略的是:Groovy 语法高亮和构建执行其实是两套独立机制,一个配错不影响另一个,但很多人把“没颜色”当成“跑不了”,或者把“Ctrl+B 报错”当成“语法写错了”。先分清哪层出了问题,再针对性查 PATH、selector、plugin conflict 或 DSL runtime context。


















