拡張機能パッケージスクリプト

拡張機能のを公開するために xpi パッケージを作るのは面倒なので、普通は xpi パッケージ作成用のビルドスクリプトを使います。

ここでは Ant のビルドスクリプトとして書いたものを公開すると共に、他のパッケージ作成用スクリプトを公開しているページを紹介します。皆さんの開発環境や好みに応じて選んでご利用ください。

Ant スクリプト

ダウンロード: build.xml
動作環境: Apache Ant 1.7 以降

このファイルを拡張機能の開発用ディレクトリ(chrome.manifest ファイルと install.rdf ファイルのあるディレクトリ)にコピーし、そのディレクトリで ant コマンドを(引数なしで)実行すると xpi パッケージが作成されます。

build.xml ファイルと異なるディレクトリのファイルを xpi にするにはコマンドラインで src.dir プロパティを指定してください。

ant -Dsrc.dir=path/to/your/extension/dir

ビルド時に生成される一時ファイルディレクトリを残したくない場合は次のコマンドを実行してください。

ant xpi clean

このスクリプトで生成されるパッケージの特徴:

  • jar ファイルを使わない開発ディレクトリから jar ファイルを用いた標準的な xpi パッケージを生成
  • それに伴い chrome.manifest を書き換えたものを xpi パッケージに含める
  • jar ファイルは無圧縮、xpi は圧縮という標準的な圧縮パターンになる
  • skin ディレクトリの下に classic ディレクトリがある標準形に統一される
  • .svn などの ant の defaultexcludes 対象ファイルやディレクトリは除外される

一般的な拡張機能のディレクトリ構成で、content パッケージが単一の拡張機能を想定しています。その他のディレクトリ構成やパッケージ構成である場合はビルドできません。必要に応じてビルドスクリプトを書き換えてご利用ください。

参考までにビルド処理の流れを書いておきます:

  1. chrome.manifest の content 行からパッケージ名 <packagename> を取得
  2. install.rdf から拡張機能のバージョン <version> を取得
  3. chrome/content ディレクトリのファイルを temp/jar/content/<packagename> にコピー
  4. chrome/locale/<ab-CD> ディレクトリのファイルを temp/jar/locale/<ab-CD>/<packagename> にコピー
  5. chrome/skin/classic ディレクトリが存在する場合 temp/jar/skin/classic/<packagename> にコピー
  6. chrome/skin/ ディレクトリのファイルを temp/jar/skin/classic/<packagename> にコピー
  7. temp/jar ディレクトリのファイルから <packagename>.jar ファイルを生成
  8. chrome.manifest を jar ファイルを使ったパスに合わせて書き換えたものを生成
  9. chrome/* ディレクトリ以外のファイルと <packagename>.jar から <packagename>-<version>.xpi を生成

シェルスクリプト

Piro さんが利用しているビルドスクリプトが以下の URL で公開されています:

http://www.cozmixng.org/repos/piro/make-xpi/trunk/

http://www.cozmixng.org/repos/piro/make-xpi/trunk/makexpi.sh

Windows であれば Cygwin などをインストールしてご利用ください。

Windows 用パッチスクリプト

Ren’s Bookmark「拡張機能開発に役立つ(かもしれない)バッチファイル」でバッチファイルが解説付きで公開されています:

http://ren-bookmark.jugem.jp/?eid=42