Java调用ant脚本并将日志信息通过对话框输出
2016-04-26 14:43
453 查看
private void build(File file) {
// 创建一个ANT项目
Project p = new Project();
// 创建一个默认的监听器,监听项目构建过程中的日志操作
DefaultLogger consoleLogger = new DefaultLogger();
ByteArrayOutputStream baop = new ByteArrayOutputStream();
//将控制台信息写入到字符数组中
System.setOut(new PrintStream(baop));
consoleLogger.setErrorPrintStream(System.err);
consoleLogger.setOutputPrintStream(System.out);
consoleLogger.setMessageOutputLevel(Project.MSG_INFO);
p.addBuildListener(consoleLogger);
try {
p.fireBuildStarted();
// 初始化该项目
p.init();
//ProjectHelper2 helper = (ProjectHelper2) ProjectHelper.getProjectHelper(); // 会与eclipse自身插件中的Ant起冲突
ProjectHelper2 hepler= new ProjectHelper2();
// 解析项目的构建文件
helper.parse(p, buildFile);
// 执行项目的某一个目标
p.executeTarget(p.getDefaultTarget());
p.fireBuildFinished(null);
printSuccessMessage(baop);
} catch (BuildException be) {
printErrorMsg(p, baop, be);
} finally {
if (baop != null) {
try {
baop.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private void printSuccessMessage(ByteArrayOutputStream baop) {
String string;
try {
string = new String(baop.toByteArray(), "utf-8");
string += "恭喜您,编译成功!";
MessageBoxUtil.confirmWithAsync(string);
try {
baop.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
private void printErrorMsg(Project p, ByteArrayOutputStream baop, BuildException be) throws IllegalArgumentException {
String string;
try {
string = new String(baop.toByteArray(), "utf-8");
string += "抱歉,编译失败,请重新检查配置";
p.fireBuildFinished(be);
System.out.println(string);
throw new IllegalArgumentException(string);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
// 创建一个ANT项目
Project p = new Project();
// 创建一个默认的监听器,监听项目构建过程中的日志操作
DefaultLogger consoleLogger = new DefaultLogger();
ByteArrayOutputStream baop = new ByteArrayOutputStream();
//将控制台信息写入到字符数组中
System.setOut(new PrintStream(baop));
consoleLogger.setErrorPrintStream(System.err);
consoleLogger.setOutputPrintStream(System.out);
consoleLogger.setMessageOutputLevel(Project.MSG_INFO);
p.addBuildListener(consoleLogger);
try {
p.fireBuildStarted();
// 初始化该项目
p.init();
//ProjectHelper2 helper = (ProjectHelper2) ProjectHelper.getProjectHelper(); // 会与eclipse自身插件中的Ant起冲突
ProjectHelper2 hepler= new ProjectHelper2();
// 解析项目的构建文件
helper.parse(p, buildFile);
// 执行项目的某一个目标
p.executeTarget(p.getDefaultTarget());
p.fireBuildFinished(null);
printSuccessMessage(baop);
} catch (BuildException be) {
printErrorMsg(p, baop, be);
} finally {
if (baop != null) {
try {
baop.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private void printSuccessMessage(ByteArrayOutputStream baop) {
String string;
try {
string = new String(baop.toByteArray(), "utf-8");
string += "恭喜您,编译成功!";
MessageBoxUtil.confirmWithAsync(string);
try {
baop.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
private void printErrorMsg(Project p, ByteArrayOutputStream baop, BuildException be) throws IllegalArgumentException {
String string;
try {
string = new String(baop.toByteArray(), "utf-8");
string += "抱歉,编译失败,请重新检查配置";
p.fireBuildFinished(be);
System.out.println(string);
throw new IllegalArgumentException(string);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
相关文章推荐
- Myeclipse 安装SVN步骤
- Java超神之路
- myeclipse复制项目
- java爬虫学习日记2-宽度优先爬虫代码实现
- Spring配置文件详解
- 修理桌子-Java
- JAVA编程讲座-吴老
- Struts2中action 访问servlet API
- java的无参构造器和super()
- Java类初始化顺序
- springIOC和DI的意义
- java程序打包成jar 配置文件信息路径
- SpringMVC—相关注解介绍
- java中list,set,map的区别
- 基于优先级队列java线程池
- 输出n对括号所有有效的匹配 java实现
- 关于博主
- 深入学习Java虚拟机(三)
- spring4整合Hibernate4过程中遇到的事物管理问题
- Java SpringMVC项目导入excel2003以及2007多版本自动识别对应工具类(util)