Eclipse コンポーネントのパッケージ化

Eclipse コンポーネントはアーカイブ・ファイルとして配布されます。個々のアーカイブには、フィーチャーとプラグインのコレクションが入っています。通常、アーカイブには、特定のコンポーネントによって提供されるすべての機能が含まれています。ただし、利用者が、複数のコンポーネントを必要とする場合や、いくつかのコンポーネントについてはその一部しか必要としない場合がよくあります。支援が受けられない場合、利用者は必要な機能のスーパーセットを含むアーカイブを手動で取り出し、その後、必要なフィーチャーおよびプラグインを手動で解凍する必要があります。これは、面倒で、かつエラーが起こりやすいプロセスです。

幸い、PDE にはバッチ指向のメカニズムであるパッケージャー が含まれており、これが役に立ちます。つまり、パッケージャーは、フィーチャーを含むアーカイブのリストと有用なフィーチャーのリストを、入力データとして受け取ります。次に、ZIP を取り出し、フィーチャー (およびそのプラグイン) を解凍して、それを出力 ZIP に再パッケージします。

クイック・スタート

以下では、パッケージャーを使い始めるときの基本的な手順を説明しています。   *nix マシンに *nix パッケージを作成し、ファイルのアクセス権を保存しておくことをお勧めします。

  1. パッケージ化する構成ディレクトリーを作成し、テンプレート・ファイル (packager.properties、 packaging.properties、および customTargets.xml) を、 org.eclipse.pde.build/templates/packager からこのディレクトリーにコピーします。
  2. コピーした packager.properties ファイルを編集して、以下のプロパティーを設定します。
  3. パッケージャーのマップ・ファイルを取得します。  以下のプロパティーが、マップ・ファイルのダウンロードを制御します。
    パッケージャー・スクリプトは、${downloadDirectory} にある *.map ファイルをすべて連結します。複数のマップ・ファイルをダウンロードする場合、またはマップ・ファイルを CVS から取り出す場合は、 customTargets.xml ファイルを編集して getMapFiles ターゲットを変更します。
  4. 以下のコマンドを使用してパッケージャーを実行します。
  5. java -jar <eclipse install>/startup.jar -application org.eclipse.ant.core.antRunner 
    -buildfile <<eclipse install>/plugins/org.eclipse.pde.build_<version>/scripts/package.xml>
    -DpackagingInfo=<path to your packaging configuration directory>

パッケージャーのマップ・ファイル形式

パッケージャーのマップ・ファイルは、各種のアーカイブ、そのコンテンツ、およびそのダウンロード先を記述するために使用されます。  このファイルは、リポジトリーからバンドルを取り出すためにビルド・プロセスで使用されるマップ・ファイルと似ています。  パッケージャーのマップ・ファイル・エントリーの形式は次のとおりです。
archiveName = url | [configList] | [directory] | contentDescription | componentName

configList と directory はオプションです。重要なのは、これまで同様、必要な数のセパレーター「|」が使用されていることです。
例:
eclipse-SDK-3.1-win32.zip=http://download.eclipse.org/downloads/drops/R-3.1-200506271435/ | win32,win32,x86 | | sdk | eclipse
eclipse-PDE-3.1.zip=http://download.eclipse.org/downloads/drops/R-3.1-200506271435/ | | | runtime | pde

パッケージャーの構成プロパティー

パッケージャーの構成ファイル packager.properties では、以下のプロパティーが設定できます。
baseDirectory
すべてのパッケージ化が行われるディレクトリー
workingDirectory
スクリプトが生成されるディレクトリー。  テンプレートの値は ${baseDirectory}/workingPlace です。
downloadDirectory
アーカイブがダウンロードされるフォルダー。  テンプレートの値は ${baseDirectory}/toPackage です。
tempDirectory
アーカイブの解凍先のフォルダー。  テンプレートの値は ${baseDirectory}/temp です。
featurePaths
ダウンロードしたアーカイブのルートの名前。  テンプレートの値は eclipse です。
featureList
再パッケージするフィーチャー ID のコンマ区切りのリスト。
componentFilter
featureList 内のフィーチャーがあるコンポーネントのコンマ区切りのリスト。   これによって選択可能なアーカイブがフィルターに掛けられ、パッケージャーはダウンロードしたファイル・セットを最適化することができます。
contentFilter
取り出すコンテンツ・タイプのコンマ区切りのリスト。  これによって使用可能なアーカイブのセットがフィルターに掛けられ、パッケージャーはダウンロードしたファイル・セットを最適化することができます。
config
再パッケージする構成 (オペレーティング・システム、ウィンドウ操作システム、アーキテクチャーの 3 要素をコンマで区切ったもの) の「&」区切りのリスト。   (例: win32, win32, x86 & linux, gtk, x86)
archivesFormat
アーカイブの形式。  構成 - 形式の "&" 区切りのリスト。   (例: win32, win32, x86 - antZip & linux, gtk, ppc - tar)。   構成にアーカイブ形式が指定されていない場合、デフォルトの形式は antZip です。
zipargs
ZIP に渡される追加の引数
unzipargs
unzip に渡される追加の引数
archivePrefix
結果として生成されるアーカイブの接頭部
collectingFolder
結果として生成されるアーカイブのルート・フォルダーの名前。
buildId
アーカイブのデフォルト名のビルド ID を制御します。
buildType
ビルド出力の命名に使用されるビルドのタイプ。  通常は I、N、M、S、... のいずれかです。
buildLabel
ビルドのラベル。  テンプレート値は ${buildType}.${buildId} です。
archiveNamePrefix
結果として生成されるアーカイブの名前を制御します。  デフォルト値は ${buildId} です。
packagingProperties
ルート・ファイルをパッケージ化するプロパティーを含むファイルの相対パス。  デフォルトでは、packaging.properties を指します。
deltaPack
デルタ・パックを生成するかどうかを指定します。  これにより、プラットフォームに依存しない部分は除外され、すべての構成がグループ化されて 1 つのアーカイブになります。

ルート・ファイルのパッケージ化

パッケージャーの構成ファイル packager.properties で、プロパティー packagingProperties は、パッケージ化が必要なルート・ファイルを指定するプロパティー・ファイルを指します。  このファイルは、デフォルトでは packaging.properties です。

このプロパティー・ファイルには、必要なルート・ファイルを指定するプロパティーが入っていなければなりません。  root プロパティーについて詳しくは、フィーチャー固有のプロパティーのページを参照してください。