3

私は、tycho-p2-director-pluginを使用してアプリケーションを構築しているEclipseRCP開発者です。

良いニュースは、アセンブリが生成され、正常に実行できることです。悪いニュースは、生成されると予想されるアーティファクトの1つ(.eclipseproductファイル)が生成されていないことです。

このファイルの処理が何であるかを理解しようとしました-Tychoを介して生成されないだけでなく、Eclipse製品のエクスポートウィザードを使用しても生成されません。 私がここで見つけたドキュメントに基づいて、私はそうなると思います。

.eclipseproduct私は基本的にこの時点で2つのことについて疑問に思っています。なぜなら、そのファイルがどこから来るのか、どの時点で生成されるのかについての良いドキュメントが見つからないからです。

tycho mavenのライフサイクル中に生成された場合、ターゲットフォルダーの下にファイルが見つかると思いますが、そうではありません。tychoに構成ファイル(config.ini以外)を静的に含める方法が見つかりませんでした。そうでない場合は、その方法を使用して、静的.eclipseproductファイルをインストールディレクトリのルートに添付していました。

これがインストーラーによって生成されるべきものである場合、これを達成できるようにp2を使用するメカニズムは何ですか?メインのP2IUに.eclipseproductファイルを含めることを検討しましたが、そのファイルが実際にルートディレクトリにコピーされるかどうか、およびそれがどのように正確に実行されるかはわかりません。

お分かりのように、このファイルをビルドに含める方法については、あまり方向性を見つけることができませんでした。正しい方向へのポインタがあれば役に立ちます。必要に応じて、製品構成ファイルを含めることもできます。

4

1 に答える 1

2

これは部分的な回答にすぎないのでコメントにする必要がありますが、長すぎます。

.eclipseproductビルド時に生成されたファイルであり、プロビジョニング時にp2によって作成されたものではないようです。

これを見つけるために、p2directorを使用してEclipse4.2のコピーをプロビジョニングしました(手順については、このページの「完全な製品のインストール」セクションを使用し、リポジトリを3.6サイトではなく4.2サイトに更新し、Windowsパスの使用からパスに変更しました私のMacに適しています)。

ファイルリストで.eclipseproduct、タイムスタンプが異なるため、ファイルが生成されたアーティファクトではなく、解凍されたアーティファクトのように見えることに気付きました。

$ ls -lA
total 304
-rw-r--r--    1 myself  group      60 Sep 14 18:13 .eclipseproduct
drwxr-xr-x    3 myself  group     102 Nov  2 14:49 Eclipse.app
-rw-r--r--    1 myself  group  112366 Nov  2 14:49 artifacts.xml
...

これにより、ディレクトリ内のさまざまなキャッシュを調べたところ、ライセンスとファイルを含むzipファイルで./p2あるインストール可能ユニットがあることがわかりました...org.eclipse.platform_root.eclipseproduct

:p2 $ zipinfo org.eclipse.equinox.p2.core/cache/binary/org.eclipse.platform_root_*
Archive:  org.eclipse.equinox.p2.core/cache/binary/org.eclipse.platform_root_4.2.1.v20120814-120134-9JF7BHVGFyMveli1uX6aTH0q-eAap6PAgOP5mO   38125   5
-rw----     2.0 fat        0 bl defN 14-Sep-12 18:13 readme/
-rw----     2.0 fat   104173 bl defN 14-Sep-12 18:13 readme/readme_eclipse.html
-rw----     2.0 fat     9051 bl defN 14-Sep-12 18:13 notice.html
-rw----     2.0 fat       60 bl defN 14-Sep-12 18:13 .eclipseproduct
-rw----     2.0 fat    16536 bl defN 14-Sep-12 18:13 epl-v10.html
5 files, 129820 bytes uncompressed, 37501 bytes compressed:  71.1%

org.eclipse.equinox.p2.repository/cache/content*.jarファイルにあるcontent.xmlファイルでP2IU情報を見つけました。

...
<unit id='org.eclipse.platform_root' version='4.2.1.v20120814-120134-9JF7BHVGFyMveli1uX6aTH0q-eAap6PAgOP5mO'>
  <provides size='1'>
    <provided namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.platform_root' version='4.2.1.v20120814-120134-9JF7BHVGFyMveli1uX6aTH0q-eAap6PAgOP5mO'/>
  </provides>
  <artifacts size='1'>
    <artifact classifier='binary' id='org.eclipse.platform_root' version='4.2.1.v20120814-120134-9JF7BHVGFyMveli1uX6aTH0q-eAap6PAgOP5mO'/>
  </artifacts>
  <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
  <touchpointData size='1'>
    <instructions size='2'>
      <instruction key='install'>
        unzip(source:@artifact, target:${installFolder});
      </instruction>
      <instruction key='uninstall'>
        cleanupzip(source:@artifact, target:${installFolder});
      </instruction>
    </instructions>
  </touchpointData>
</unit>
...

つまり、このIUがインストールされると(で必要に応じてorg.eclipse.platform.feature.group)、p2はアーティファクトを.eclipseproductインストールフォルダーに解凍するだけです。変換は必要ありません。したがって、インストール時間の前に生成する必要があります。

編集:私はそれをEclipse Gitリポジトリーでも見つけましたが、これが上記のIUに変換されたものであるかどうかはわかりません...

于 2012-11-05T17:49:51.987 に答える