5

Eclipseワークスペースと対話してそこから情報を取得する単純なAntタスクを作成したいと思います。さまざまなEclipseAPI(たとえばIWorkspace)を使用できるようにしたいと思います。

私の質問は、これを行うための最も簡単な方法は何でしょうか。

私はEclipseプラットフォームのユーザーとして優れた知識を持っていますが、Eclipseの開発については何も知りません。実行時に、Antタスクをワークスペースと同じJREで呼び出す必要があることを理解しています。これは、私が拘束したい制限です。

まず、Antタスクを保持するJavaプロジェクトを作成しました。私のやり方で今の唯一のことは、EclipseのJARへのJAR依存関係を定義する方法だと思います。これらはバージョン管理されているため、特定のEclipse JARに依存したくないことは明らかです(たとえば、Eclipseの「Resources」プラグイン)。Javaプロジェクトのビルド時間を「リソースプラグインの現在のJARが何であれ」に依存させることは可能ですか?

4

3 に答える 3

2

この記事はあなたの問題にかなり対処していると思います:http ://www.ibm.com/developerworks/rational/library/09/eclipsecustomanttasks/

これはIBMRationalApplication Developerを対象としていますが、これはEclipseとAFAISに基づいており、少なくともEclipseでタスクを使用可能にする方法(プラグイン定義など)。

于 2011-02-04T22:28:28.897 に答える
1

したがって、Eclipse内で実行されるAntタスクが必要です。そして、あなたが言うように、それらのタスクがEclipseAPIを使用していることは明らかです。現時点では、彼らがどのようにやっているのかよくわかりません。私はそれらのいくつかの出典を見てきましたが、まだ質問があります。

Eclipseによって提供されたすべてのAntタスクの場所を見つけるには、プラグイン検索を実行しorg.eclipse.ant.core.antTasksます。そうすると、20ほどの拡張機能が表示され、その多くが複数のタスクを定義しています。

これらのタスクの1つに寄与するプラグインのソースバンドルを入手した場合は、そのソースを確認できます。RefreshLocalTask​​はorg.eclipse.core.resourcesにあります。残念ながら、このバンドルをソースプロジェクトとしてワークスペースにインポートすると、Antタスクのソースが正しくリンクされません。それらのために(バンドル内に)別のjarがあり、ソースがバンドル内にある間は、jarがどのようにコンパイルされるかは明確ではありません。結果として、ワークスペースにAntタスクソースをコンパイルしていません。

AntタスクソースをGoogleで検索することもできます。これがの3.6.0ソースですRefreshLocalTask

org.eclipse.core.resources.ResourcePluginとにかく、ソースでは、おそらく必要なものを説明するための呼び出しを見ることができます。

ああ、拡張ポイントの説明に表示されます-これらの検索結果の1つを右クリックして、[説明の表示]を選択するか、マニフェストエディターからそこに移動します-設定できるフラグ「eclipseRuntime」があります。このテキストは、設定されている場合、Eclipseが同じVMでタスクを起動することを示しています。

于 2010-10-06T23:27:13.333 に答える
0

あなたが取ることができるいくつかのルートがあるので、あなたはおそらくあなたがやりたいことについてもっと言うべきです。

  1. Eclipseには、ビルドスクリプトで使用できるAntタスクがいくつか用意されています。 ここにいくつかあります。他にもあるので、Eclipseドキュメントで「anttasks」を検索してください。それらは異なるページに散らばっています。Eclipse設定(Window..Preferences、次にAnt / Runtimeを選択し、[Classpath]タブの[ContributedEntries]を確認)は、AntがEclipseから呼び出されるたびにEclipseがランタイムに提供するAntタスクのリストを示します。適切なjarを含める限り、これらのタスクを自分で呼び出すことができます。
  2. JavaからEclipseを起動できるため、Antタスク内からEclipseを起動することができます。適切なjarファイルを含め、適切な呼び出しを行う必要があります。また、Eclipseを正しく構成する必要があります。「org.eclipse.core.runtime.adaptor.EclipseStarter」で詳細がわかります。
  3. おそらく、Ant(または他のプログラム)を起動するときに使用するためにEclipseが定義する1つ以上の変数を使用できます。([実行]メニューの下部にある)外部ツール構成を作成してみてください-Antビルドを選択し、引数([メイン]タブから)または環境変数([環境]]タブからカスタマイズしてみてください。どちらもEclipse変数へのアクセスを提供します。ただし、もちろん、これらはAntスクリプトに渡すことができる単なる値であり、メソッドを呼び出すことができるものへのハンドルではありません。

できないこと:EclipseがAntを起動するとき、それは常に別のVMにあり、Eclipseにコールバックする方法はないと確信しています。

だから、おそらくあなたはあなたがやりたいことについてもっと言うべきです。

于 2010-10-06T17:49:09.647 に答える