我有一个使用第三方库的常规脚本。每次我打开应用程序并尝试运行脚本时,都必须导入正确的库。
我希望能够打开GroovyConsole并运行我的应用程序而不必导入该库。
在Linux中,您也有
/usr/share/groovy/conf/groovy-starter.conf
在这里您可以添加您的特定库:
# load user specific libraries
load !{user.home}/.groovy/lib/*.jar
load /home/squelsh/src/neo4j-community-1.4.M03/lib/*.jar
load /home/squelsh/src/neo4j-community-1.4.M03/system/lib/*.jar
希望有帮助,必须花很长时间才能找到它(:
如果只想将JAR添加到类路径中,请将它们复制(或符号链接)到~/.groovy/lib
(或Windows上的%USER_HOME%/.groovy/lib
。
如果您希望每次启动Groovy Console时都运行实际的import
语句,请按照Squelsh的建议编辑groovy-starter.conf文件。
您可以编写一个外部Groovy脚本来执行所有导入,创建一个GroovyConsole对象,然后在该对象上调用run()方法。
另请参阅http://groovy.codehaus.org/Groovy+Console#GroovyConsole-EmbeddingtheConsole
例如:start.groovy
import groovy.ui.Console;
import com.botkop.service.*
import com.botkop.service.groovy.*
def env = System.getenv()
def service = new ServiceWrapper(
userName:env.userName,
password:env.password,
host:env.host,
port:new Integer(env.port))
service.connect()
Console console = new Console()
console.setVariable("service", service)
console.run()
从shell脚本调用groovy可执行文件,并为其提供groovy脚本:
#!/bin/bash
if [ $# -ne 4 ]
then
echo "usage: $0 userName password host port"
exit 10
fi
export userName=$1
export password=$2
export host=$3
export port=$4
export PATH=~/apps/groovy/bin:/usr/bin:$PATH
export CLASSPATH=$(find lib -name '*.jar' | tr '\n' ':')
groovy start.groovy
GroovyConsole中的代码现在可以利用在start.groovy中完成的导入,以及通过setVariable方法(在示例中为“ service”)创建和传递的变量。
至少在Linux groovy上,GroovyConsole是一个具有以下命令的脚本:
如果您使用的是Mac,我强烈建议您使用SDKMAN来管理Groovy安装。