LoginSignup
3
3

More than 5 years have passed since last update.

AntでForce.comのStatic Resourceファイルを作成する

Last updated at Posted at 2014-04-19

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!

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3