使用程序运行 Ant 构建文件

构建到 Eclipse 中的 Ant 支持允许插件使用程序运行 Ant 构建文件。这是通过包括在 org.eclipse.ant.core 插件内的 AntRunner 类完成的。

以下代码段显示如何在另一插件的代码中使用 AntRunner 的示例:

import org.eclipse.ant.core.AntRunner;
import org.eclipse.core.runtime.IProgressMonitor;

...

public void runBuild() {
IProgressMonitor monitor = ...
AntRunner runner = new AntRunner();
runner.setBuildFileLocation("c:/buildfiles/build.xml");
runner.setArguments("-Dmessage=Building -verbose");
runner.run(monitor);
}

如果使用进度监视器,则它将可供运行任务使用。有关更多详细信息,请参阅进度监视器

注意,如果构建不是在单独的 VM 中进行,在任何给定时间都只能进行一个 Ant 构建。请参阅 AntRunner.isBuildRunning()

如果构建与工作空间在同一 JRE 中进行,则应特别留意本地库

每次在 Eclipse 中运行 Ant 构建文件时,就会创建新的类装入器。因为在 Java 中一个类装入器只能装入一个库,所以利用本地库的任务在多构建文件运行期间可能会遇到问题。如果在新的类装入器尝试装入本地库时,尚未对先前的类装入器作垃圾回收,则将抛出异常以指示问题,并且构建失败。避免此问题的一种方法是由插件库内部的类处理库装入。该任务可以利用该类来访问本机方法。这样,该库由插件类装入器装入,并且它不会遇到装入库冲突。