Gradle実践シリーズその2です〜
webアプリをビルドする際に必ず必要になる、静的ファイルの圧縮です。
htdocsに配置するための圧縮ファイルを生成してみましょう。
subprojects { task zipStatic(type: Zip) { from 'src/main/webapp/static' baseName = 'static' } }
以下のフォルダ構成の場合、static.zip という名称で、staticフォルダがzip圧縮されます。
static/ ├── css │ ├── file1.css │ ├── file2.css │ └── lib │ └── file3.css └── js ├── file1.js ├── file2.js └── lib └── file3.js
zipタスクをsubprojects内に定義しているのは、親プロジェクトには基本的にビルドファイルしか置かないので、子プロジェクトのみにスコープを限定する、という意味があります。
このzipタスクによって生成される圧縮ファイルは以下に出力されます。
hoge-project/ └── build └── distributions └── static.zip
今回は static というフォルダ配下にjsやcssフォルダがありますが、webapp直下にjsやcssフォルダが有る場合もあると思います。
webapp/ ├── css │ ├── file1.css │ ├── file2.css │ └── lib │ └── file3.css └── js ├── file1.js ├── file2.js └── lib └── file3.js
その場合、webapp以下を全て対象にし、WEB-INFは除外、として対応します。
こうする事でwebapp直下に配置するrobots.txtやfaviconやウェブマスターツールのhtml等もzipファイル内に含める事ができます。
subprojects { task zipStatic(type: Zip) { from 'src/main/webapp/' exclude 'WEB-INF' baseName = 'static' } }
ちなみにfromとexcludeは複数書くことができます。
沢山excludeしたければ、必要な分だけexcludeを書きましょう。
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ブログ