2017年1月3日火曜日

GradleでビルドするとNoClassDefFoundErrorが発生する場合の対処 (Groovy)


Groovy で
FileNameFinderクラスや、CliBuilderを利用している時に
./gradlew run などで実行すると、NoClassDefFoundError が発生する場合がある。

どうやら、ant や commons-cli に依存しているようだが、
groovy-allであってもそれらは Optional Dependencies な為、
コンパイルする場合は明示的に依存解決しておかないと駄目みたい。。
(たぶんそういう事だと思う)

gradleで依存解決を記載するのは、
下記のように(build.gradleの) dependencies に ant / commons-cli を追記すればOK

dependencies {
    compile "org.codehaus.groovy:groovy-all:2.4.7"
    compile "org.apache.ant:ant:1.9.7"
    compile "commons-cli:commons-cli:1.3.1"
}

# ant
https://mvnrepository.com/artifact/org.apache.ant/ant/1.9.7

# commons-cli
https://mvnrepository.com/artifact/commons-cli/commons-cli/1.3.1

0 件のコメント:

コメントを投稿