package org.apache.easframework.common; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.DefaultLogger; import org.apache.tools.ant.Project; import org.apache.tools.ant.ProjectHelper; public class CompileJava { public static synchronized boolean compile(String buildFilePath, String logFilePath) { File buildFile = new File(buildFilePath); Project project = new Project(); DefaultLogger consoleLogger = new DefaultLogger(); try { FileOutputStream fs = new FileOutputStream(logFilePath); PrintStream ps = new PrintStream(fs); consoleLogger.setErrorPrintStream(ps); consoleLogger.setOutputPrintStream(ps); } catch (FileNotFoundException e1) { e1.printStackTrace(); } consoleLogger.setMessageOutputLevel(Project.MSG_INFO); project.addBuildListener(consoleLogger); try { project.fireBuildStarted(); project.init(); ProjectHelper helper = ProjectHelper.getProjectHelper(); helper.parse(project, buildFile); System.out.println("默认target:"); System.out.println(project.getDefaultTarget()); //默认的target是help project.executeTarget("all"); //调用的task是all project.fireBuildFinished(null); return true; } catch (BuildException e) { project.fireBuildFinished(e); return false; } } public static String startCompile(String buildFile,String logFile) { if(CompileJava.compile(buildFile, logFile)) { return "编译成功!"; } else { return "编译失败!"; } } /** * @param args */ public static void main(String[] args) { System.out.println("开始编译..."); boolean b = CompileJava.compile("D:/easdev/build/userbuild.xml", "D:/easdev/build/userbuild.log"); if(b) { System.out.println("编译成功!"); } else { System.out.println("编译失败!"); } System.out.println("结束编译..."); } }
ANT CompileJava
最新推荐文章于 2024-06-21 14:17:14 发布