Force.comで開発していく上で、Static Resourceファイルを作成するのは手動で行うには面倒です。
Static Resourceファイルはファイル拡張子だけ変更してアップロードしてしまう方法もありますが、そうしてしまうとどんどんファイル数が多くなってしまいので、ZIP圧縮でファイルを一つにまとめてしまったほうがすっきりします。
とはいえ、JavaScriptやCSSを変更するたびに手作業で 不要ファイルを除去→ZIP圧縮→ファイル名変更 するのはさすがに厳しいです。そこで、AntでStatic Resourceファイルを作成させてしまえばいいんじゃないか、というわけです。
前提とするファイル構成
ここでは下記のようなファイル構成となっているとします。
[プロジェクト] ├ build.properties ├ build.xml ├ [build](自動で作成する) ├ [resource] | ├ [SampleResource] | └ [...] └ [src] ├ [staticresources] └ [...]
Antの呼び出し部分
以下のようにarchiveタスクにリソース名(SampelResource)を指定すると、src/staticresource/SampelResource.resourceを作成するようにAntマクロを作成してみました。中間ファイルとしてbuild以下にZIP圧縮前のファイルをコピーしています。
<target name="make"> <archive resource="SampleResource" /> </target>
Antマクロ
実際にStatic Resourceファイルを作成しているAntマクロは下記のようになっています。属性として指定されたリソース名に基づいて処理を実行します。一旦build以下にStatic Resourceに含めたいファイルのみコピーしてからZIP圧縮していますので、不要なファイルを開発組織にデプロイすることもなくなります。
<macrodef name="archive"> <attribute name="resource" /> <sequential> <echo message="compress: @{resource}" /> <delete dir="${build.dir}/@{resource}" /> <copy todir="${build.dir}/@{resource}" preservelastmodified="true"> <fileset dir="${resource.dir}/@{resource}"> <patternset> <include name="**/*.gif"/> <include name="**/*.png"/> <include name="**/*.js"/> <include name="**/*.css"/> </patternset> </fileset> </copy> <zip basedir="${build.dir}/@{resource}" destfile="${src.dir}/staticresources/@{resource}.resource" /> </sequential> </macrodef>
元ファイルは こちら です。
まとめ
これでStatic Resourceファイルを手軽に作成できるようになりました。
本格的にやるのであればGruntなどを使ってもいいところですが、インストールするものが多くなってしまうので、Antでちゃちゃっとやるのもいいと思います。
Enjoy Deploying!