我有一个使用第三方库的groovy脚本。每次我打开应用程序并尝试运行我的脚本时,我都必须导入适当的库。
我希望能够打开GroovyConsole并运行我的应用程序,而无需导入库。
答案 0 :(得分:8)
在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
希望它有所帮助,不得不长时间搜索这个(:
答案 1 :(得分:6)
如果您只想将JAR添加到类路径中,请将它们复制(或符号链接)到~/.groovy/lib
(或Windows上的%USER_HOME%/.groovy/lib
)。
如果您希望每次Groovy Console启动时都运行实际的import
语句,请按照Squelsh的建议编辑groovy-starter.conf文件。
答案 2 :(得分:2)
您可以编写外部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”)。
答案 3 :(得分:1)
至少在Linux上groovy GroovyConsole是一个Script有以下命令:
startGroovy groovy.ui.Console "$@"
startGroovy本身是一个启动Java的脚本。在startGroovy脚本中,您应该能够修改类路径并添加缺少的库。
来自startGroovy:
startGroovy ( ) {
CLASS=$1
shift
# Start the Profiler or the JVM
if $useprofiler ; then
runProfiler
else
exec "$JAVACMD" $JAVA_OPTS \
-classpath "$STARTER_CLASSPATH" \
-Dscript.name="$SCRIPT_PATH" \
-Dprogram.name="$PROGNAME" \
-Dgroovy.starter.conf="$GROOVY_CONF" \
-Dgroovy.home="$GROOVY_HOME" \
-Dtools.jar="$TOOLS_JAR" \
$STARTER_MAIN_CLASS \
--main $CLASS \
--conf "$GROOVY_CONF" \
--classpath "$CP" \
"$@"
fi
答案 4 :(得分:0)
如果您使用的是Mac,我强烈建议您使用SDKMAN来管理Groovy安装。
通过SDKMAN安装后,您可以修改~/.sdkman/candidates/groovy/current/bin/groovy/conf/groovy-starter.conf
。每当您启动Groovy Console会话时,将在运行时自动导入您在此处添加的包。您可能希望将它们添加到下面示例中标有标签的部分下:
# load user specific libraries
load !{user.home}/.groovy/lib/*.jar
load !{user.home}/.groovy/lib/additional_package.jar