Ant自定义任务并调用其他任务

    xiaoxiao2021-03-25  137

    将某一目录下面二级目录的文件夹打包

    使用方式:

    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(); } } } } } } }

    转载请注明原文地址: https://ju.6miu.com/read-11831.html

    最新回复(0)