0

別の Groovy スクリプト (external.groovy) からメソッドを呼び出す必要がある Groovy スクリプト (source.groovy) があります。問題は、external.groovy が存在しないライブラリをインポートするため、エラーが発生することです。次に例を示します。

ソース.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() 関数を呼び出す方法はありますか?

4

1 に答える 1

0

それを実現したい方法ではないかもしれませんが、不要なインポートを削除する簡単な解決策があります。

def text = new File( 'external.groovy' ).findAll{!(it =~ /^\s*import/)}.join('\n')
new GroovyShell().parse( text ).with{method()}
于 2014-06-07T08:45:04.420 に答える