文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

javaのビルドをgradleで行う:調査編4:Groovy Librariesの罠

Gradle調査シリーズその4です〜


f:id:treeapps:20180426142529p:plain

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ブログ