6

I am currently trying to get my headless pde-build working but I am stuck on a point where I do not know how to continue. The problem is how to define the related target platform to compile the plugins against. I have a build.bat with the following call (all in one line!):

java -jar D:\target\eclipse\plugins\org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar 
-application org.eclipse.ant.core.antRunner 
-f D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_20100114\scripts\productBuild\productBuild.xml 
-Dbuilder=c:\pde-build\scripts %*

Eclipse SDK、RCP SDK、Delta Pack、PDE-SDK のすべての組み合わせからターゲットの Eclipse プラットフォームを作成しようとしましたが、どれもうまく機能しませんでした。

次のエラーが発生しました。

BUILD FAILED
D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_20100114\scripts\productBuild\productBuild.xml:18: Cannot fin
d ${eclipse.pdebuild.scripts}/build.xml imported from D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_2010011
4\scripts\productBuild\productBuild.xml

変数 ${eclipse.pdebuild.scripts} が解決されていない場所。また、コマンドラインからこのパラメーターを指定しようとしましたが、svn タスクが見つからないという別のエラーが発生しました。これは、参照されているローカルの Eclipse インストールで動作しているため、完全に混乱します。

パスを d:/target/eclipse からローカルの Eclipse インストールに置き換えると、pde ビルドが期待どおりに機能します。これは、ターゲットのEclipseの構成が正しくないという点につながりますが、現時点ではこれを構成する方法がわかりません!

My goal is the automate the pde build first on my local site without referencing my local eclipse and later on integrate this building process into our running cruisecontrol instance.

As I saw already another question about defining the target eclipse I would be happy if anyone can contribute hints or facts regarding the problem.

Regards, Andreas

4

3 に答える 3

5

ヘッドレス ビルドを実行する場合、ビルド自体を実際に実行している Eclipse からターゲットを分離することができます。ここでの問題は、ビルドの実行に使用していた Eclipse に PDE/Build が正しくインストールされていなかったことです。

${eclipse.pdebuild.scripts}PDE/Build がその Eclipse インスタンスにインストールされておらず、org.eclipse.pde.build バンドルが解決されておらず、このプロパティを設定するコードが呼び出されなかったため、これが設定されなかった理由です。同様に、PDE/ビルド タスクに必要な ant クラスパス エントリも適切に設定されていません。

ビルドを実行するには、内部に PDE がインストールされた Eclipse が必要ですが、ビルドのターゲットはこれとは別にすることができます。

下にあるbuild.propertiesファイルで、いくつかのプロパティ-Dbuilder=c:\pde-build\scriptsを設定できます。

  1. baseLocationこれは、あなたの目標である日食への道です。
  2. buildDirectoryこれはビルドが実際に行われる場所であり、ソースは plugins/ および features/ サブフォルダーにフェッチされますが、ここに既にバイナリ プラグインがある場合は、それらもターゲットの一部になります。
  3. pluginPathこれは、ターゲットの一部と見なすべき他の場所を含むパスのリストです (Windows では「;」、Linux では「:」で区切ります)。これらの場所はいくつかあります。
    1. plugins/ および features/ サブフォルダーを含む Eclipse のようなインストールのルート。これは、Eclipse インストールの上で単に解凍するのではなく、デルタ パックを提供する良い方法です。
    2. マニフェストまたは feature.xml の存在に応じて、すべてのサブフォルダーがプラグインまたは機能として扱われるワークスペースのようなフォルダーのルート。
    3. バンドルまたは機能のルート、またはバンドルの jar。
  4. p2 ビルド ( ) を実行している場合は、変換されて配置され、ターゲットの一部になるp2.gathering = truep2 リポジトリを の下に提供することもできます。そこにある p2 メタデータは、ビルド中に再利用されます。${repoBaseLocation}${transformedRepoLocation}
于 2010-07-06T15:38:23.607 に答える
0

しばらく調査した後、私はこれまでに何を間違えたかを知りました。上で述べたように、ターゲットプラットフォームの定義は、SDKとプラグインを1つの場所にコピーするほど簡単ではありません(Eclipse開発の初期の頃のように)。

現在の実用的な解決策は次のとおりです。EclipseSDKをターゲットの場所にコピーして、このバージョンを実行します。プラグイン開発を可能にするために必要なPDEツールをこの中にインストールします。その後、IDEを閉じ、デルタパックとそれぞれのsvnプラグイン(sourceforgeのorg.eclipse.pde.build.svn-1.0.1RC2を使用)をターゲットプラットフォームにコピーします。これで完了です。これで、自動化されたPDEビルドが期待どおりに実行されます。

現在のマイナーな問題は次のとおりです。結果の製品には、dev-eclipse内からこれを実行したときに存在しないeclipse固有のメニューエントリが含まれています。

そのためのヒントはありますか?

于 2010-07-06T09:41:58.787 に答える
0

この種のトピックに関する私の質問への回答を投稿しました。これが役立つかもしれません。

プラグイン製品VSフィーチャー製品

于 2010-07-06T09:44:26.287 に答える