使用GroovyShell()从外部groovy脚本添加方法

时间:2014-06-05 18:34:46

标签: groovy groovyshell

我有一个groovy脚本(source.groovy)需要从另一个groovy脚本(external.groovy)调用一个方法。问题是external.groovy导入了一个不存在的库,所以我收到了一个错误。这是一个例子:

Source.groovy:

 new GroovyShell().parse( new File( 'external.groovy' ) ).with {
    method()
  }

这是external.groovy:

import com.foo.doesnotexsist
def method() {println "test"}

当我运行Source.groovy时出现错误,因为com.foo.doesnotexsist不存在。我不在乎它不存在,因为它不影响method()函数。有没有办法可以调用method()函数?

1 个答案:

答案 0 :(得分:0)

也许这不是我们想要实现的方式,但有一个简单的解决方案可以删除不需要的导入:

def text = new File( 'external.groovy' ).findAll{!(it =~ /^\s*import/)}.join('\n')
new GroovyShell().parse( text ).with{method()}