在groovsh中覆盖groovy的库?

时间:2012-09-08 11:42:40

标签: groovy groovyshell

Groovy提供各种第三方库。 servlet-api(v2.4)是groovy(v 2.0.1)的一个例子:

groovy:000> javax.servlet.http.HttpServlet.protectionDomain.codeSource
===> (file:/usr/lib/groovy/2.0.1/lib/servlet-api-2.4.jar <no signer certificates>)
groovy:000> 

假设我想要一个更新的版本:建议的方法是什么?

2 个答案:

答案 0 :(得分:1)

当我使用Groovy脚本运行Jetty 9.1.x的嵌入式实例时,我遇到了这个问题。在很多类加载扭曲之后,唯一有效的方法是使用-cp选项在命令行上指定JAR:

groovysh -cp javax.servlet-api-3.1.0.jar

这会将JAR的URL放在包含的servlet-api前面,以便首先检查它。似乎现在还没有其他方法:

groovy:000> javax.servlet.http.HttpServlet.protectionDomain.codeSource
===> (file:/<current directory>/javax.servlet-api-3.1.0.jar <no signer certificates>)

答案 1 :(得分:0)

我从groovy/lib/删除了旧版本,并在/home/will/.groovy/lib/中添加了我想要的版本。我想您也可以直接添加到原始的lib目录