Groovysh初始化脚本

时间:2014-10-24 15:25:56

标签: groovy groovyshell

我正在寻找一种方法让groovysh初始化,然后进入常规的groovysh交互式会话。那就是:

  • 运行一些脚本(例如导入或其他任何内容)
  • 继续在groovysh中运行,就像从会话开始手动输入上一个脚本一样。

看到这个:

但我希望能够在每个应用程序上执行此操作,而不是按用户级别执行此操作。即不同的应用程序通常不会导入相同的东西(或以相同的方式初始化)。这可能吗?

3 个答案:

答案 0 :(得分:1)

从Groovy 2.4开始,您可以使用groovysh -e '... your code here ...'

示例:

$ groovysh -e '2+2'
Groovy Shell (2.4.7, JVM: 1.8.0_131)
Type ':help' or ':h' for help.
----------------------------------------------------------
groovy:000> 2+2
===> 4

如果您想预加载脚本,请使用:load,如下所示:

$ cat preamble.groovy 
def hello(x) {
  "Hello ${x}"
}
println hello("world")

$ groovysh -e ':load preamble.groovy'
Groovy Shell (2.4.7, JVM: 1.8.0_131)
Type ':help' or ':h' for help.
----------------------------------------------------------
groovy:000> :load preamble.groovy
===> true
Hello world
===> null
groovy:000> hello('stackoverflow')
===> Hello stackoverflow

(在最后一个例子中,我手动输入了最后一行,我可以使用前言中定义的函数hello

答案 1 :(得分:0)

根据这篇文章:

看起来像Groovy< = 2.3不支持这个,它将使用这种语法出现在Groovy 2.4中:

groovysh -e foo.groovy

答案 2 :(得分:0)

使用load关键字似乎有效:

coord.y