私はGroovyベースのツールを構築しており、インタラクティブなコマンドラインを提供したいアドインとして、これは部分的に機能していますが、バインディングはGroovyShell.evaluate()
呼び出し間で状態を維持しません。Groovyのドキュメントを確認しました。またInteractiveGroovyShell
、バージョン2.0.xでは使用できないというクラスを使用した例があります。
この機能を実現するために通常のGroovyシェルを構成する方法はありますか?
これが私が今グルーヴィーなシェルを作成している方法の単純化されたバージョンです:
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