2008-09-16 6 views
0

私は、現在のプロジェクトにクラスの束を生成するeclipse(3.4)で外部ツール(sablecc)を設定しました。私はこのツールを実行し、これらのクラスをかなり頻繁に再生成する必要があります。これは、sableccを実行するたびに、sableccが作成するパッケージ/クラスを手動で削除して、古いクラスと新しい生成クラスの間に競合がないことを保証する必要があることを意味します。 Eclipseや他の方法からこれを自動化する簡単な方法がありますか?eclipseで外部ツールを実行する際に特定のクラスを削除しますか?

答えて

0

外部ツールの実行後にEclipseにワークスペース(またはその一部)を更新するよう指示できます。これにより、Eclipseは新しく/削除されたクラスを検出するようになります。

+0

いいえ、それは私の望むことを全くしません。 Sableccはプロジェクト内の何かを無視し、そこにあるクラスの上にクラスを生成します。 sableccを呼び出す前に古い生成クラスを削除する必要があります。 –

0

JesperEは、sableccを実行するための外部ツール設定で、オプション "Refresh-> Refresh-> Refresh resources on completion"を参照しています。

1

私があなたの意見を正しく理解していない場合、sableccを実行する前に古いクラスを削除する必要があると思いますが、そのうちのいくつかは最終的に新しい実行では作成されないためです。

Ant build.xmlをtargetと一緒に短く書くと、最初にクラス(Ant deleteタスク)が削除され、次にsablecc(Ant execタスク)が実行されるのが最善の方法です。 Antが終了した後にワークスペースをリフレッシュするようにeclipseをプリセットすることもできます。

build.xmlをプロジェクトのどこにでも置いて、右クリックして、Run As/Ant Buildをクリックします。

クリーンなスタイルのために、新しいプロセスで外部で実行するのではなく、Antタスク(org.sablecc.ant.taskdefによって実装されています)でsableccを呼び出すことができます。

関連する問題