Ant入门

  • Ant的用处

      Ant是一个生成工具。在软件开发过程中用来将源代码和其他输入文件转换成可执行的文件的形式。现今的应用程序生成过程越来越复杂,使用Ant构建项目,可以确保每次生成都使用一致的步骤,同时实现了自动化。

 

  • Ant的例子

      Ant的配置使用XML格式的文件,默认文件名为:build.xml。以下使用Ant的一个例子:其中<target>元素为Ant执行的单元。各个<target>可以通过指定“depends”属性设定依赖关系,如果Ant执行发现某个target依赖于其他的target则会首先执行被依赖的target。Ant还内置的很多标签,可以实现编译 打包 新建或删除目录等功能。

   

<?xml version="1.0" encoding="UTF-8"?>
<project name="myAntProject" basedir="." default="package">
	
	<property name="compile" value="compile"/>
	<property name="dist" value="dist"/>

	<target name="init">
	</target>
	
	<target name="preprocess" depends="init">
		<mkdir dir="${compile}"/>
		<mkdir dir="${dist}"/>
	</target>
	
	<target name="myCompile" depends="preprocess">
		<javac srcdir="src" destdir="${compile}" includeantruntime="on"/>
	</target>
	
	<target name="package" depends="myCompile">
		<jar destfile="${dist}/package.jar" basedir="${compile}">
			<manifest>
				<attribute name="Build-By" value="${user.name}"/>
				<attribute name="Main-Class" value="jzl.ant.test.TestJFrame"/>
			</manifest>
		</jar>
	</target>
</project>

 

  •  ant的扩展

      首先,建立一个自定义类继承org.apache.tools.ant.Task类,并实现其中的execute()方法。代码如下:

package jzl.ant.expend;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.ListIterator;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;

public class FileSorter extends Task {
	
	private File srcFile;
	private File destFile;

	@Override
	public void execute() throws BuildException {
		try {
			BufferedReader br = new BufferedReader(new FileReader(srcFile));
			BufferedWriter bw = new BufferedWriter(new FileWriter(destFile));
			
			String line = br.readLine();
			List<String> strList = new ArrayList<String>();
			while(line != null) {
				strList.add(line);
				line = br.readLine();
			}
			
			Collections.sort(strList);
			
			for(ListIterator<String> li=strList.listIterator(); li.hasNext(); ) {
				String str = li.next();
				bw.write(str);
				bw.newLine();
			}
			
			bw.close();
			br.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public File getDestFile() {
		return destFile;
	}

	public File getSrcFile() {
		return srcFile;
	}

	public void setDestFile(File destFile) {
		this.destFile = destFile;
	}
	
	public void setSrcFile(File srcFile) {
		this.srcFile = srcFile;
	}
}

 

然后在build.xml指明自定义标签的内容,在以下target中调用即可。

<taskdef name="myTask" classname="jzl.ant.expend.FileSorter" classpath="bin">
	</taskdef>
	
	<target name="myFileSorter">
		<myTask srcfile="input.txt" destfile="output.txt"/>
	</target>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值