0

Eclipseインフラストラクチャの理解が不完全なため、1つの問題があります。歴史的に、ビルド手順には醜いものが1つあります。次のように
なります。eclipseがワークスペース全体をビルドした後、プラグインのローカルビルドに不完全なものが1つあります。これは、特別なプラグインテストの実行中に現在作成されているデータファイルです(実際には何もテストしませんが、必要なデータの生成を行います)。ワークスペースを変更した後は、そのテストを実行する必要はありません。実際には、めったに触れられないコードの部分を変更した後にのみ必要になります。ただし、コードのその部分に変更が加えられると、その特別なデータファイルを更新する前にビルドが使用できなくなります。そのファイルはローカルでしか作成できないため、CVSに保存されるようになりましたが、製品のビルドに必要です。
このプラグインテストがワークスペースのビルド手順中に実行されるようにビルド手順を変更したいので、手動で実行する必要はありません。org.eclipse.test / library.xmlのテンプレートを使用してそのテストを実行するantファイルを作成しようとしましたが、プラグインがロードされませんでした。なぜこれが発生するのかわかりませんが、Eclipseの作業コピーにテストプラグインがないために発生する可能性があります。
プラグインテストをバッチモードで実行することに関するいくつかの記事を読みましたが、開発されたプラグインをテストするために個別のEclipseコピーが必要であるという私の気持ちを強めるだけです。
プラグインのビルドにはantを使用しており、これらのスクリプトの構造全体は非常に複雑であるため、トップレベルでビルド手順をグローバルに変更することは不可能だと思います。タスクを完了するにはどのオプションが必要ですか?多分誰かがすでに同じような経験をしました...

実際、私は特別なEclipseアプリケーションを優先してそのテストを削除したいのですが、プラグインテストを実行するよりも問題が一般的である可能性があるため、現時点では重要ではないと思います。

4

2 に答える 2

0

私の推測では、変更されたときにデータファイルの再構築を強制するいくつかのソースファイルがあります。その再構築はやや遅いので、いつもやりたくないでしょう。

私はこれを次のように攻撃します。データファイルが依存するすべてのコードを単一のプロジェクトに移動します。データファイルを作成するANTスクリプトを記述します。そのANTスクリプトをカスタムビルダーとしてプロジェクトに追加し(プロジェクトのプロパティを開き、[ビルダー]をクリックします)、プロジェクトのすべての変更で実行します。これにより、入力ファイルの1つを保存するだけで、データファイルを最新の状態に保つことができます。

于 2009-10-11T10:40:52.037 に答える
0

ANTスクリプトは次のようになります。

  <!-- Prepare extension -->
  <mkdir dir="${extension_dir}/eclipse"/>
  <antcall target="make_symlink">
     <param name="target" value="${workspace_loc}"/>
     <param name="source" value="${symlink_location}"/>
  </antcall>

  <!-- Install extension -->
  <mkdir dir="${eclipse-home}/links"/>
  <echo file="${link_file}">path=${extension_dir}</echo>

  <!-- Run test -->
  <antcall target="core-test">
     <param name="plugin-name" value="testsPlugin"/>
     <param name="classname" value="testsPlugin.TestsClass"/>
     <param name="data-dir" value="${workspace_loc}/../some_workspace"/>
     <param name="plugin-path" value="${workspace_loc}"/>
  </antcall>

  <!-- Uninstall extension -->
  <delete file="${link_file}"/>

  <!-- Delete extension -->
  <antcall target="delete_symlink">
     <param name="source" value="${symlink_location}"/>
  </antcall>
  <delete dir="${extension_dir}"/>

このスクリプトは、「eclipse-home」、「os」、「ws」、「arch」のパラメーターでパラメーター化する必要があります。それらの最初はスレーブEclipseインスタンスへのパスであり、最後の3つは実行中のプラットフォームを照合するために使用されるプロパティです。ローカルビルドでは、それぞれosgi.os、ogsi.ws、osgi.archの値を持つことができます。

于 2009-10-26T09:31:55.700 に答える