将某一目录下面二级目录的文件夹打包
使用方式:
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();
}
}
}
}
}
}
}