Eclipse にビルドされた Ant サポートによって、プラグインは、プログラマチックに Ant ビルド・ファイルを実行できます。 これは、org.eclipse.ant.core プラグインに組み込まれている AntRunner クラスを介して実行されます。
以下のコードの断片は、AntRunner の使用例を示しています。
import org.eclipse.ant.core.AntRunner; import org.eclipse.core.runtime.IProgressMonitor; public class Running { public static void main(String[] args) throws Exception { IProgressMonitor monitor = ... AntRunner runner = new AntRunner(); runner.setBuildFileLocation("c:/buildfiles/build.xml"); runner.setArguments("-Dmessage=Building -verbose"); runner.run(monitor); } }
進行モニターを使用している場合は、実行中のタスクで使用できます。 詳細については「進行モニター」を参照してください。 ある一定の時間に行うことができる Ant ビルドは 1 つだけです。 AntRunner.isBuildRunning() を参照してください。
Eclipse で Ant スクリプトを実行するたびに、新しいクラス・ローダーが作成されます。 ライブラリーは Java では 1 つのクラス・ローダーからのみロードできるので、ネイティブ・ライブラリーを使用するタスクは、複数のスクリプトの実行時には、問題を生じる可能性があります。 新しいクラス・ローダーがネイティブ・ライブラリーをロードしようとしている時点で、直前のクラス・ローダーがまだガーベッジ・コレクションされていない場合は、問題を示す例外が throw され、スクリプトの実行が失敗に終わります。 この問題を回避する 1 つの方法は、ライブラリーのロードをプラグイン・ライブラリー内のクラスに処理させることです。 タスクは、ネイティブ・メソッドにアクセスするためにそのクラスを利用できます。 この方法では、ライブラリーはプラグイン・クラス・ローダーによってロードされ、ロード・ライブラリーの競合は起きません。