【发布时间】:2016-05-24 23:15:22
【问题描述】:
我想从一个 Eclipse 插件中运行一个 Ant 构建脚本。我还想通过在 Eclipse 控制台中显示 Ant 输出给用户。最后,我还想等待 Ant 构建完成,然后捕获结果:构建成功还是失败?
我找到了三种从 eclipse 运行 Ant 脚本的方法:
- 实例化一个
org.eclipse.ant.core.AntRunner,调用一些setter并调用run()或run(IProgressMonitor)。结果要么是正常终止(表示成功),要么是带有IStatus的 CoreException,其中包含BuildException(表示失败),或者出现其他问题。但是,我在任何地方都看不到 Ant 输出。 - 实例化一个
org.eclipse.ant.core.AntRunner并调用run(Object),传递一个包含命令行参数的String[]。结果要么是正常终止(指示成功),要么是InvocationTargetException(指示失败),或者出现其他问题。看起来,Ant 输出被发送到 Eclipse 的标准输出;它在 Eclipse 本身中不可见。 - 调用
DebugPlugin.getDefault().getLaunchManager(),然后调用getLaunchConfigurationType(IAntLaunchConfigurationConstants.ID_ANT_BUILDER_LAUNCH_CONFIGURATION_TYPE),然后将属性"org.eclipse.ui.externaltools.ATTR_LOCATION"设置为构建文件名(并将属性DebugPlugin.ATTR_CAPTURE_OUTPUT设置为true),最后调用launch()。 Ant 输出显示在 Eclipse 控制台中,但我不知道如何在我的代码中捕获构建结果(成功/失败)。或者如何等待启动终止,甚至。
有没有办法让控制台输出和捕获结果?
【问题讨论】: