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

Ant是常见的Java构建工具,一般通过build.xml文件调用任务,也能通过编程方式调用以简化开发。作者分享了一个用Ant打包文件的程序片段,几行代码就能完成原本几十行代码的工作,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还可以替我们完成许多工作,仅仅通过很少的代码,就可以实现,那何乐而不为呢。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值