EclipseプラグインをUpdateSiteで公開するのにハマった

Eclipse3.4(Ganymede)から、プラグインの更新マネージャが「Equinox p2」に変更されましたが、Update Siteでプラグインを公開する場合、公開の方法も変更する必要があります。

基本的には、EclipseのPDEで、Update Site Projectを作成していれば、公開に必要なファイルが生成されますが、以下の違いがあります。

  • 旧更新マネージャ(Classic Update Manager)
    • site.xmlというファイルに記述されているプラグインの情報を元に、ダウンロードされる。
  • Equinox p2
    • site.xmlに加え、artifacts.jar、content.jarというファイルが必要になる。
    • 作成方法は分かっていないが、artifacts.xml、content.xmlというファイルでも良いらしい。上記jarファイルの中身は、このXMLファイルになっている。


現在、「PROMA-C Plug-in」というプラグインを開発しているのですが、「Equinox p2」対応をしていて、大分ハマる問題にぶつかりました。

プラグインをUpdate Siteで公開し、ダウンロードしようとすると、以下のエラーが発生してダウンロードできず。。。

Cannot complete the install because one or more required items could not be found.
  Missing requirement: 1270999359457 0.0.0.1270999359457 requires 'xxxx' but it could not be found

Eclipse3.4、3.5でも、Classic Update Managerを利用した場合は、問題なくダウンロードできるのに。


大分いろいろ調べた結果、根本原因は分からなかったのですが、feature.xmlで、言語設定をしていたのが問題を引き起こしている様子。

<feature
      id="proma-c"
      label="PROMA-C Plug-in"
      version="0.1.6"
      plugin="proma-c"
      nl="ja">                        ← ここ

「nl」の部分の定義を削除したら、無事、ダウンロードできるようになりました。

解決できたのは良かったのだけれど、一体、なぜ???