現在のプロジェクトで一連のクラスを生成する Eclipse (3.4) に外部ツール (sablecc) を設定しました。このツールを実行して、これらのクラスをかなり頻繁に再生成する必要があります。つまり、sablecc を実行するたびに、sablecc が作成するパッケージ/クラスを手動で削除して、生成された新旧のクラスが競合しないようにする必要があります。これをEclipse内またはそれ以外から自動化する簡単な方法はありますか?
3 に答える
私があなたの主張を正しく理解しているかどうかはわかりません.sableccを実行する前に古いクラスを削除する必要があると思います.それらのいくつかは最終的に新しい実行で作成されないからです.
最初にクラスを削除し (Ant 削除タスク)、次に sablecc (Ant exec タスク) を実行するターゲットを含む短いAnt build.xmlを作成するのがおそらく最善です。Ant の終了後にワークスペースをリフレッシュするように eclipse を事前設定することもできます。
build.xml をプロジェクトの任意の場所に配置し、右クリックして Run As/Ant Build を実行します。
きれいなスタイルにするために、新しいプロセスで外部から実行する代わりに、(org.sablecc.ant.taskdef によって実装された) Ant タスクで sablecc を呼び出すことができます。
外部ツールの実行後にワークスペース (またはその一部) を更新するように Eclipse に指示できます。これにより、Eclipse は新しい/削除されたクラスを検出するようになります。
JesperE は、 sableccを実行するための外部ツール構成で、オプション [更新] -> [完了時にリソースを更新] を参照しています。