我正在寻找一种方法让groovysh初始化,然后进入常规的groovysh交互式会话。那就是:
看到这个:
但我希望能够在每个应用程序上执行此操作,而不是按用户级别执行此操作。即不同的应用程序通常不会导入相同的东西(或以相同的方式初始化)。这可能吗?
答案 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