您如何配置GroovyConsole,这样我就不必在启动时导入库?

问题描述 投票:8回答:5

我有一个使用第三方库的常规脚本。每次我打开应用程序并尝试运行脚本时,都必须导入正确的库。

我希望能够打开GroovyConsole并运行我的应用程序而不必导入该库。

groovy import classpath groovy-console
5个回答
10
投票

在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

希望有帮助,必须花很长时间才能找到它(:


6
投票

如果只想将JAR添加到类路径中,请将它们复制(或符号链接)到~/.groovy/lib(或Windows上的%USER_HOME%/.groovy/lib

如果您希望每次启动Groovy Console时都运行实际的import语句,请按照Squelsh的建议编辑groovy-starter.conf文件。


3
投票

您可以编写一个外部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”)创建和传递的变量。


2
投票

至少在Linux groovy上,GroovyConsole是一个具有以下命令的脚本:


0
投票

如果您使用的是Mac,我强烈建议您使用SDKMAN来管理Groovy安装。

© www.soinside.com 2019 - 2024. All rights reserved.