Apache Ant提供了豐富的任務(wù)來(lái)執(zhí)行構(gòu)建文件操作,因此允許在Ant之外實(shí)現(xiàn)這些任務(wù)。 這意味著也可以使用Java程序執(zhí)行任務(wù)。 使用Java實(shí)現(xiàn)Ant非常簡(jiǎn)單,只需要在Java源文件中導(dǎo)入Project,Target和Task名稱包。 例如:
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Target;
創(chuàng)建外部Ant具有以下優(yōu)點(diǎn)和缺點(diǎn)。
優(yōu)點(diǎn)
缺點(diǎn)
ant.jar文件需要位于lib路徑中。假設(shè)想要使用Java代碼實(shí)現(xiàn)一個(gè)Task解壓縮,這需要zipfilepath和destinationDir屬性/參數(shù)。
要實(shí)現(xiàn)解壓縮任務(wù),需要在源文件中導(dǎo)入org.apache.tools.ant.taskdefs.Expand包。下面給出的示例代碼。
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Target;
import org.apache.tools.ant.taskdefs.Expand;
import java.io.File;
public class JavaTaskExample{
public static void main(String[] args){
unzip(zipFilepath, destinationDir);
}
static public void unzip(String zipFilepath, String destinationDir) {
try{
final class Expander extends Expand {
public Expander() {
project = new Project();
project.init();
taskType = "unzip";
taskName = "unzip";
target = new Target();
}
}
Expander expander = new Expander();
expander.setSrc(new File(zipfile));
expander.setDest(new File(destdir));
expander.execute();
}
}catch(BuildException e){
System.out.println(e);
}
}