読者です 読者をやめる 読者になる 読者になる

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

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

javaのビルドをgradleで行う:実践編2:静的ファイルの圧縮

ビルド java gradle

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.txtfaviconやウェブマスターツールの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との違い - treeのメモ帳
javaのビルドをgradleで行う:調査編2:依存から1行で特定jarを除外! - treeのメモ帳
javaのビルドをgradleで行う:調査編3:seasar系の依存の注意点 - treeのメモ帳
javaのビルドをgradleで行う:調査編4:Groovy Librariesの罠 - treeのメモ帳


javaのビルドをgradleで行う:実践編1:jsとcssのcombineとminify - treeのメモ帳
javaのビルドをgradleで行う:実践編2:静的ファイルの圧縮 - treeのメモ帳
javaのビルドをgradleで行う:実践編3:jspの文字列置換(ReplaceTokens) - treeのメモ帳
javaのビルドをgradleで行う:実践編4:あれどうやるの?の疑問と自己解決 - treeのメモ帳
javaのビルドをgradleで行う:実践編5:マルチプロジェクト時のprovidedCompileについて - treeのメモ帳
javaのビルドをgradleで行う:実践編6:高速に実用的な実行可能jarを生成する - treeのメモ帳
プログラミングGROOVY

プログラミングGROOVY


Building and Testing With Gradle

Building and Testing With Gradle