我正在构建一个基于 groovy 的工具,作为一个插件,我想提供一个交互式命令行,我有这个部分工作,但绑定不会在GroovyShell.evaluate()
调用之间保持状态,我已经阅读了 groovy 文档他们有一个使用名为 的类的示例,该类InteractiveGroovyShell
在 2.0.x 版本中不可用。
有没有办法配置普通的 groovy shell 来实现这个功能?
这是我现在如何创建 groovy shell 的简化版本:
CompilerConfiguration config = new CompilerConfiguration();
Binding binding = new Binding();
shell = new GroovyShell(binding, config);
shell.evaluate("def a = 20");
shell.evaluate("println a"); //this throws an exception telling the variable does not exist