将某一目录下面二级目录的文件夹打包
使用方式:
1.将代码打成jar包放到ant的lib目录下
2.在build.xml里引用
<taskdef name="zipextend" classname="ZipExtend" />3.target里调用 <zipextend basedir="d:/test"/>
代码:
import java.io.File; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Task; public class ZipExtend extends Task{ private File baseDir; private File DestFile; private String level; private String suffix; public File getBaseDir() { return baseDir; } public void setBaseDir(File baseDir) { this.baseDir = baseDir; } public File getDestFile() { return DestFile; } public void setDestFile(File destFile) { DestFile = destFile; } public String getLevel() { return level; } public void setLevel(String level) { this.level = level; } public String getSuffix() { return suffix; } public void setSuffix(String suffix) { this.suffix = suffix; } public ZipExtend() { } @Override public void execute() throws BuildException { super.execute(); if(suffix == null) suffix = "jar"; if(baseDir != null){ File modules[] = baseDir.listFiles(); for (int i = 0; i < modules.length; i++) { File module = modules[i]; if(module.isDirectory()){ File zjs[] = module.listFiles(); for (int j = 0; j < zjs.length; j++) { File zj = zjs[j]; if(zj.isDirectory()){ Zip zip = new Zip(); //调用其他任务时需要注入project对象 zip.setProject(this.getProject()); //定义task名称,否则为null zip.setTaskName("zipextend"); zip.setBasedir(zj); zip.setDestFile(new File(zj.getAbsolutePath() + "." + suffix)); log("baseDir:" + zj.getAbsolutePath()); log("DestFile:" + zip.getDestFile().getAbsolutePath()); zip.execute(); } } } } } } }