我需要在rest控制器的Web应用程序中运行ant target。 我正在使用以下代码:
class Networking {
func performFileDownload(path: String, completionHandler: @escaping (ResultModel<DataResponse<Data>, Error>) -> Void) {
let fileUrl = SDKCore.tenantURL + path
alamofire.request(fileUrl)
.responseData { (response) in
switch response.result {
case .success(_):
completionHandler(.success(response))
case .failure(let error):
completionHandler(.failed(error))
}
}
}
当我从main方法执行此方法时,ant任务已正确执行。 但是,如果我从控制器调用此代码,它将在
处停止执行DefaultLogger consoleLogger = new DefaultLogger();
consoleLogger.setErrorPrintStream(System.err);
consoleLogger.setOutputPrintStream(System.out);
consoleLogger.setMessageOutputLevel(Project.MSG_INFO);
// Prepare Ant project
String buildFilePath = "build.xml";
Project project = new Project();
File buildFile = new File(buildFilePath);
project.setUserProperty("ant.file", buildFile.getAbsolutePath());
project.addBuildListener(consoleLogger);
try {
project.fireBuildStarted();
project.init();
ProjectHelper projectHelper = ProjectHelper.getProjectHelper();
project.addReference("ant.projectHelper", projectHelper);
projectHelper.parse(project, buildFile);
String targetToExecute = "<my target>";
project.executeTarget(targetToExecute);
project.fireBuildFinished(null);
} catch (BuildException buildException) {
project.fireBuildFinished(buildException);
throw new RuntimeException("Error", buildException);
}
它不会引发任何异常等,只是在eclipse中,我得到了窗口以附加cxf jar或一些无关的jar的源代码。 我已经在类路径中包含ant.jar,ant-launcher.jar和xercesImpl.jar。
有什么我想念的吗?
谢谢