使用对Ant编程来实现简单文件的打包

使用对Ant编程来实现简单文件的打包

kongxx

Ant是我们熟悉的Java构建工具,通常我们使用Ant是通过build.xml文件来实现任务的调用,其实不仅如此,我们还也可以通过编程的方式来实现任务调用,从而简化我们的开发。以下是我很久以前写的一个关于使用Ant打包文件的程序片段,最近做东西又翻了出来,简单整理了一下,程序片段如下:

import java.io.File;

import org.apache.tools.ant.Project;

import org.apache.tools.ant.taskdefs.Expand;

import org.apache.tools.ant.taskdefs.Zip;

import org.apache.tools.ant.types.FileSet;

 

public class Package {

    public static void main(String[] args) {

        Package p1 = new Package();

        String strDir1 = "f://Test";

        String strDestFile1 = "f://test1.zip";

        p1.pack(strDir1 ,strDestFile1);

       

        Package p2 = new Package();

        String strDir2 = "f://Test";

        String strDestFile2 = "f://test2.zip";

        String[] filenames2 = {"test1//test11//*" ,"test1//test12//*"};

        p2.pack(strDir2 ,filenames2,strDestFile2);

       

    }   

    /**

     * 打包一个目录

     * @param strDir 要打包的目录

     * @param strDestFile 要打包的压缩文件路径

     */

    public void pack(String strDir ,String strDestFile) {

        pack(new File(strDir),new File(strDestFile));

    }

    /**

     * 打包一个目录

     * @param fDir 要打包的目录对象

     * @param fDestFile 要打包的压缩文件对象

     */

    public void pack(File fDir ,File fDestFile) {

        Zip zip = new Zip();

        zip.setProject(new Project());

        zip.setTaskName("default");

        zip.setBasedir(fDir);

 

        zip.setDestFile(fDestFile);

        zip.execute();

    }

    /**

     * 打包一个目录下一定范围内的文件

     * @param fDir 要打包的目录对象

     * @param filenames 要包含的文件列表。是相对要打包目录的相对路径

     * @param fDestFile 要打包的压缩文件对象

     */

    public void pack(File fDir ,String[] filenames ,File fDestFile) {

        Zip zip = new Zip();

        zip.setProject(new Project());

        zip.setTaskName("default");

        zip.setDestFile(fDestFile);

 

        FileSet fs = new FileSet();

        fs.setDir(fDir);

        for(int i = 0 ; i < filenames.length ; i++) {

            fs.setIncludes(filenames[i]);

        }

        zip.addFileset(fs);

        zip.execute();

    }

    /**

     * 打包一个目录下一定范围内的文件

     * @param strDir 要打包的目录对象

     * @param filenames 要包含的文件列表。是相对要打包目录的相对路径

     * @param strDestDir 要打包的压缩文件对象

     */

    public void pack(String strDir ,String[] filenames ,String strDestDir) {

        pack(new File(strDir) ,filenames ,new File(strDestDir));

    }

    /**

     *

     * @param strSrcZip

     * @param strDestDir

     */

    public void unpack(String strSrcZip ,String strDestDir) {

        unpack(new File(strSrcZip) ,new File(strDestDir));

    }

 

    /**

     *

     * @param fSrcZip

     * @param fDestDir

     */

    public void unpack(File fSrcZip ,File fDestDir) {

        Expand expand = new Expand();

        expand.setProject(new Project());

        expand.setSrc(fSrcZip);

        expand.setDest(fDestDir);

        expand.setOverwrite(true);

        expand.execute();

    }

}

从代码看仅仅几行代码就解决了原来我们需要写得几十行代码,其实Ant还可以替我们完成许多工作,仅仅通过很少的代码,就可以实现,那何乐而不为呢。

你可能感兴趣的:(ant)