Gradle ビルド スクリプトから groovy コマンドライン スクリプトを実行したいと考えています。
Gradleスクリプトでこのコードを使用しています:
def groovyShell = new GroovyShell();
groovyShell.run(file('script.groovy'), ['arg1', 'arg2'] as String[])
私の Groovy スクリプト (script.groovy) が CliBuilder クラスを使用するまで、問題なく動作します。次に、次の例外が発生します。
org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException ... 原因: java.lang.ClassNotFoundException: org.apache.commons.cli.ParseException
同様の問題やエラーを抱えている人をたくさん見つけましたが、読んだ多数の投稿から「解決策」を抽出するのは困難でした。多くの人が commons-cli jar をクラスパスに配置することを提案しましたが、GroovyShell に対してそうすることが私にはまったくわかりませんでした。また、script.groovy で必要なライブラリに対して @Grapes と @Grab を既に宣言しているので、必要なものはすべて含まれているはずです。