build.xml
<?xml version="1.0" encoding="utf-8"?>
<project name="myAnt" basedir="." default="">
<property name="src" value="src">
</property>
<property name="classes" value="classes">
</property>
<property name="dest" value="dest">
</property>
<path id="classpath">
<pathelement path="${classes}" />
</path>
<target name="help" description="打印幫助信息">
<echo>help - 打印幫助信息</echo>
<echo>compile - 編譯java源文件</echo>
<echo>run - 運行程序</echo>
<echo>build - 打包jar文件</echo>
<echo>clean - 清除所有編譯生成的文件</echo>
</target>
<target name="compile" description="編譯java源文件">
<delete dir="${classes}">
</delete>
<mkdir dir="${classes}" />
<javac destdir="${classes}" debug="true" includeantruntime="yes" deprecation="false" optimize="false" failonerror="true">
<src path="${src}" />
<classpath refid="classpath">
</classpath>
</javac>
</target>
<target name="run" description="運行程序" depends="compile">
<java classname="cn.jzy.ant.Hello" fork="yes" failonerror="true">
<classpath refid="classpath">
</classpath>
</java>
</target>
<target name="build" description="打包jar文件" depends="compile">
<delete dir="${dest}">
</delete>
<mkdir dir="${dest}" />
<jar destfile="${dest}/app.jar" basedir="${classes}"
includes="**/*.class">
<manifest>
<attribute name="Main-Class" value="cn.jzy.ant.Hello"/>
</manifest>
</jar>
</target>
<target name="clean" description="清除所有編譯生成的文件">
<delete dir="${classes}"></delete>
<delete dir="${dest}"></delete>
</target>
<!--自定義標籤、實現文件內容的排序-->
<taskdef name="mySort" classname="cn.jzy.ant.SortAnt" classpath="bin"></taskdef>
<target name="sortDemo">
<mySort srcfile="input.text" destfile="output.text"/>
</target>
</project>
自定義Ant標籤
package cn.jzy.ant;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
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 SortAnt extends Task {
private File srcFile;
private File destFile;
public File getSrcFile() {
return srcFile;
}
public void setSrcFile(File srcFile) {
this.srcFile = srcFile;
}
public File getDestFile() {
return destFile;
}
public void setDestFile(File destFile) {
this.destFile = destFile;
}
@Override
public void execute() throws BuildException {
try {
BufferedReader fromFile=new BufferedReader(new FileReader(srcFile));
BufferedWriter toFile=new BufferedWriter(new FileWriter(destFile));
List<String> list=new ArrayList<String>();
String line=fromFile.readLine();
while(line!=null){
list.add(line);
line=fromFile.readLine();
}
Collections.sort(list);
for(ListIterator<String> li=list.listIterator();li.hasNext();){
String str=li.next();
toFile.write(str);
toFile.newLine();
}
fromFile.close();
toFile.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}