Ant之外的Apache Ant任務


Apache Ant提供了豐富的任務來執行構建檔案操作,因此允許在Ant之外實現這些任務。 這意味著也可以使用Java程式執行任務。 使用Java實現Ant非常簡單,只需要在Java原始檔中匯入ProjectTargetTask名稱包。 例如:

import org.apache.tools.ant.Project;  
import org.apache.tools.ant.Target;

建立外部Ant具有以下優點和缺點。

優點

  • 健壯性是Ant的最大優勢。 Ant任務可以掩蓋錯誤並提供很好的邊界條件。Ant任務在各種上下文中使用,並且能夠處理異常和控制流。
  • 跨平台是另一個優勢,它允許在所有平台上執行,無論是UNIX,Windows還是MacOS。
  • Ant的社群允許與開放世界分享和理解,整個Apache Ant社群都支援Ant程式碼。

缺點

  • 如果Java原始碼正在實現它,需要包含Ant的庫。ant.jar檔案需要位於lib路徑中。
  • 不容易修改,需要大量的時間和精力。 儘管作為一個開源並具有世界級社群,它將有助於解決,但用Java編寫的程式碼很長一段時間後不易改變。

Ant Java範例

假設想要使用Java程式碼實現一個Task解壓縮,這需要zipfilepathdestinationDir屬性/引數。

要實現解壓縮任務,需要在原始檔中匯入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);    
}  
}