Buckminsterを試してみる(1)
BuckminsterとはEclipse Plug-inのビルドやテストを補助するEclipse Plug-inです。Eclipse Demo Camp Tokyoで、「こんなネタで話したかったんだ」とつぶやいたネタの一つがBuckminsterでした。それで興味を持ってくださった方がいらっしゃったのと、PluginBuilderのHelios版がリリースされる様子がないので、この機会に試してみました。ここで公開されているチュートリアルを試しました。このチュートリアルを訳しつつ、メモをとりました。
やったこと
RCPのサンプルとしてよく使われる、Mailテンプレートプロジェクトを作成する。
- プラグインプロジェクト(com.example.mail)を作成
- RCPの作成を選択
- Nextを選ぶとテンプレートプロジェクトが表示される。Mailテンプレートを選択
配布用フィーチャーを作る(com.example.mail.feature)
RCPとしてビルドできる事を確認する。
- com.example.mail.featureにproductファイル*3を追加する。
- 下記の写真みたいに情報を追加する。
Buckminsterをインストールする。
- Buckminsterのインストールにはzestが必要です。zestはGEFのリポジトリからダウンロードできます。(http://www.eclipse.orggef/updates/)
- Heliosのp2リポジトリからもインストールできますが、最新版ではないので、Buckminsterのリポジトリ(http://download.eclipse.org/tools/buckminster/updates-3.6)からダウンロードしましょう。
- Buckminster CoreとBuckminster PDE Supportを選択
Buckminster用のフィーチャープロジェクト(com.example.mail.site)を作成
target platform*5の定義と共有をします。
Buckminsterを使ってp2リポジトリを作成する
Buckminsterを使ってp2リポジトリを作るのは簡単です。
- com.example.mail.siteを選択し、コンテキストメニューを表示し、Buckminster > Invoke Action を選択すると次のダイアログが表示される。
- しばらく待つと、site.p2が表示される。site.p2を選択すると、同じワークスペースにBuckminster.outputというフォルダが出来る。それがp2のリポジトリ。
- 今度はp2リポジトリの出力先等、カスタマイズ。まず下記のプロパティファイルを作る。
# 出力先 buckminster.output.root=${user.home}/tmp/mail # 一時ファイルの出力先 buckminster.temp.root=${user.home}/tmp/buildtmp # .qualifier の置換方法(リビジョンで置き換える) qualifier.replacement.*=generator:lastRevision target.os=* target.ws=* target.arch=*
- 先ほどのダイアログではpropertiesファイルの指定欄があったが、そこに作成したbuckminster.propertiesを指定。
これで出力先のカスタマイズ等できます。.qualifierの指定方法は他にもgenerator:lastModifiedや generator:buildTimestamp があります。一般的にeclipse上からエクスポートされると置換されるのは、buildTimestamp形式です。先ほどのbuckminster.propertiesはこんな感じで指定します。
qualifier.replacement.*=generator:buildTimestamp generator.buildTimestamp.format=yyyyMMddHHmm
これで自動ビルドの下準備が整いました。続いてHudson...と行きたいところですが、ちょうど区切りがいいので次回。ちなみに紹介したチュートリアルのサイトではHudsonの自動化までやられており、実際にやってみたのですが、拍子抜けするくらい簡単でした。ただ、作業は簡単ですが、実際はp2のインストールに時間がかかる事があるので、なんか止まってるっぽいと思って終了しないように。ハマったのは、フィーチャーIDの指定が間違っていた、ということくらいです。