【发布时间】:2017-01-12 00:22:23
【问题描述】:
我想以编程方式运行一个 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 文件时在环境工具中所做的那样)。 如何以编程方式更改此选项?
【问题讨论】: