Ant java Api的使用方法

来源:互联网 发布:linux wget 下载jdk 编辑:程序博客网 时间:2024/05/17 06:47

参考:http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html

    http://www.chinaaet.com/article/9809

http://www.zuidaima.com/user/1982170616236032/mood.htm

package com.test;import java.io.File;import java.util.Date;import org.apache.tools.ant.Project;import org.apache.tools.ant.ProjectHelper;import org.apache.tools.ant.taskdefs.Copy;import org.apache.tools.ant.taskdefs.Delete;import org.apache.tools.ant.taskdefs.Expand;import org.apache.tools.ant.taskdefs.Mkdir;import org.apache.tools.ant.types.FileSet;import org.apache.tools.ant.types.FilterSet;import org.apache.tools.ant.types.PatternSet;public class AntBuild {/** * @param args */public static void main(String[] args) {// 拷贝绘本资源文件File picRes = new File("d:\\app\\picBook.zip");buildPicBooks(picRes,"haha");}public static final String appDir="d:\\app";// 绘本空Android 工程存放目录public static final String apkDir = appDir+"\\apk";public static String buildPicBooks(File picRes,String title){long now = System.currentTimeMillis();//临时生成apk目录String fileName = String.format("d:\\app\\%d\\", System.currentTimeMillis());File file = new File(fileName);// 创建临时目录mkDir(file);// 拷贝APk资源文件、并替换app namecopy2Replace(file, title);//解压绘本图片、音乐unZip(file, picRes);//将绘本jpg mp3 拷贝到app工程assets里String name = picRes.getName();File picFile = new File(fileName +name.substring(0,name.indexOf(".")) );File replace = new File(String.format("%s\\OCCUPTION_PACKAGE\\assets\\dede_audios", fileName));copy(replace, "**/*.mp3", picFile);copy(replace, "**/*.MP3", picFile);replace = new File(String.format("%s\\OCCUPTION_PACKAGE\\assets\\dede_images", fileName));copy(replace, "**/*.JPG", picFile);copy(replace, "**/*.jpg", picFile);//Build apkFile build = new File(String.format("%s\\OCCUPTION_PACKAGE\\build.xml", fileName));build(build);//apk 移动到正式apk目录File appFile = new File(String.format("%s\\OCCUPTION_PACKAGE\\bin", fileName));copy(picRes.getParentFile(), "**/OCCUPTION_PACKAGE-debug.apk", appFile);//删除临时目录delDir(file);  System.out.println((System.currentTimeMillis()-now)/1000+"秒");  return null;}/** *  */public static void build(File file){        //1.5 以后使用,但是报错 import requires support in ProjectHelper//        Project project = new Project();//        try {  //            project.fireBuildStarted();  //            project.init();  //            ProjectHelper projectHelper = ProjectHelper.getProjectHelper();  //            projectHelper.parse(project, file);  ////          project.executeTarget(project.getDefaultTarget()); //调用默认的target标签  //            project.executeTarget("debug");    //调用删除target标签  //            project.fireBuildFinished(null);  //        } catch (Exception e) {  //            System.out.println("#############");  //            e.printStackTrace();  //        }         Project p = new Project();        p.init();        ProjectHelper.configureProject(p,file);        p.executeTarget("debug");}/** * 文件拷贝并替换apk名字 *  * @param args */public static void copy2Replace(File file, String title) {Project prj = new Project();Copy copy = new Copy();copy.setEncoding("UTF-8");copy.setProject(prj);copy.setTodir(file);FileSet fileSet = new FileSet();fileSet.setDir(new File(apkDir));fileSet.setIncludes("**/**"); // 拷贝所有文件copy.addFileset(fileSet);FilterSet filter = copy.createFilterSet();// 替换@app_name@ 为 titlefilter.addFilter("app_name", title);copy.execute();}/** * 文件拷贝 *  * @param args */public static void copy(File dirFile, String include, File picFile) {Project prj = new Project();Copy copy = new Copy();copy.setEncoding("UTF-8");copy.setProject(prj);copy.setTodir(dirFile);FileSet fileSet = new FileSet();fileSet.setDir(picFile);fileSet.setIncludes(include); // 拷贝所有文件copy.addFileset(fileSet);copy.execute();}/** * make dir *  * @param file */private static void mkDir(File file) {// TODO Auto-generated method stubProject prj = new Project();Mkdir mkdir = new Mkdir();mkdir.setProject(prj);mkdir.setDir(file);mkdir.execute();}/** * delete dir *  * @param file */private static void delDir(File file) {// TODO Auto-generated method stubProject prj = new Project();Delete delete = new Delete();delete.setProject(prj);delete.setDir(file);delete.execute();}public static void unZip(File file, File zip) {Project prj = new Project();Expand expand = new Expand();expand.setProject(prj);expand.setSrc(zip);expand.setOverwrite(true);expand.setDest(file);PatternSet patternset = new PatternSet();patternset.setIncludes("**/**");patternset.setProject(prj);expand.addPatternset(patternset);expand.execute();}}


0 0
原创粉丝点击