Gradle調査シリーズその4です〜
Dolteng等でプロジェクトを生成した後に、「Configure -> Convert to Gradle Project」としてGradleプロジェクトにした時の罠を紹介。
Gradleプロジェクトに変換した時に、以下がビルドパスに追加されます。
- Groovy DSL Support
- Groovy Libraries
- Gradle DSLD support
この中で問題児がいます。
それは・・・
Groovy Libraries、君ですよ!!
君は危ないものを持ってないか?ん??
君が依存している「servlet-api-2.4.jar」、これは何かね?
そうです。こいつは問題です。
既にservlet-api.jarが有るということは、別途Server Runtimeでtomcatを追加したり、Gradleのdependenciesでtomcat-servlet-apiを追加した場合、当然競合します。
競合すると、例えばseasarの場合はweb.xmlに書いてあるFilter系は、tomcat起動時に全てClassCastExceptionが発生します。
これはtomat以外のservletコンテナであっても同様の現象が発生するので、
必要が無ければGroovy Libraiesをビルドパスから外す等をした方がいいかと思います。
javaのビルドをgradleで行う:調査編1:maven・SBTとの違い - 文系プログラマによるTIPSブログ
javaのビルドをgradleで行う:調査編2:依存から1行で特定jarを除外! - 文系プログラマによるTIPSブログ
javaのビルドをgradleで行う:調査編3:seasar系の依存の注意点 - 文系プログラマによるTIPSブログ
javaのビルドをgradleで行う:調査編4:Groovy Librariesの罠 - 文系プログラマによるTIPSブログ
javaのビルドをgradleで行う:実践編1:jsとcssのcombineとminify - 文系プログラマによるTIPSブログ
javaのビルドをgradleで行う:実践編2:静的ファイルの圧縮 - 文系プログラマによるTIPSブログ
javaのビルドをgradleで行う:実践編3:jspの文字列置換(ReplaceTokens) - 文系プログラマによるTIPSブログ
javaのビルドをgradleで行う:実践編4:あれどうやるの?の疑問と自己解決 - 文系プログラマによるTIPSブログ
javaのビルドをgradleで行う:実践編5:マルチプロジェクト時のprovidedCompileについて - 文系プログラマによるTIPSブログ
javaのビルドをgradleで行う:実践編6:高速に実用的な実行可能jarを生成する - 文系プログラマによるTIPSブログ