在同一工作区JRE

时间:2017-01-12 00:22:23

标签: java eclipse ant

我想以编程方式运行ANT 文件。我使用了下一个代码:

File file = new File("path to file");
Project project = new Project();
project.init();

DefaultLogger logger = new DefaultLogger();
logger.setErrorPrintStream(System.err);
logger.setOutputPrintStream(System.err);
logger.setMessageOutputLevel(Project.MSG_INFO);

project.setProperty("ant.file", file.getAbsolutePath());
project.addBuildListener(logger);
project.fireBuildStarted();

ProjectHelper helper = ProjectHelper.getProjectHelper();
project.addReference("ant.projectHelper", helper);
helper.parse(project, file);
project.executeTarget(project.getDefaultTarget());

但是,当我运行代码时,我获得了以下错误

Problem: failed to create task or type epsilon.emf.register
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.

我几乎可以肯定会出现此问题,因为正在使用单独的JRE 。我需要设置相同的工作空间JRE (就像我们在手动运行ANT文件时在环境工具中所做的那样)。 如何以编程方式更改此选项?

2 个答案:

答案 0 :(得分:0)

类路径问题,这是在缺少实现第三方ANT任务的jar时抛出的典型错误。

检查您的构建文件,看看是否使用了名为“epsilon.emf.register”的任务。

答案 1 :(得分:0)

有关此问题的简要解决方案,请参阅此论坛中提供的答案:

Run ANT file with Epsilon tasks programatically