অ্যাপাচি অ্যান্ট (Apache Ant) একটি ওপেন সোর্স বিল্ড টুল যা মূলত সফটওয়্যার ডেভেলপমেন্ট প্রক্রিয়া স্বয়ংক্রিয় করার জন্য ব্যবহৃত হয়। এটি XML ভিত্তিক কনফিগারেশন ফাইল ব্যবহার করে এবং একটি সরল এবং শক্তিশালী প্রোগ্রামিং ভাষা দিয়ে ডেভেলপারদের বিল্ড প্রক্রিয়া পরিচালনা করতে সহায়তা করে। অ্যাপাচি অ্যান্টে ব্যবহৃত Tasks হল নির্দিষ্ট কাজের একক যা কোনো কার্যক্রম সম্পাদন করতে ব্যবহৃত হয়।
অ্যাপাচি অ্যান্টে দুই ধরনের টাস্ক ব্যবহৃত হয়:
এখানে আমরা Built-in Tasks এবং Custom Tasks এর বিস্তারিত পরিচিতি প্রদান করবো।
Built-in Tasks হল অ্যাপাচি অ্যান্টে ডিফল্টভাবে অন্তর্ভুক্ত থাকা টাস্কসমূহ। এগুলি অ্যাপাচি অ্যান্টের সিস্টেমের অংশ হিসেবে আসে এবং বিভিন্ন ধরনের সাধারণ কার্যক্রম সম্পাদন করতে ব্যবহৃত হয়, যেমন ফাইল কপি করা, ডিরেক্টরি তৈরি করা, সোর্স কোড কম্পাইল করা, ফাইল বা ডিরেক্টরি মুছে ফেলা, এবং অন্যান্য কাজ করা। এই টাস্কগুলো সাধারণত অ্যান্ট কনফিগারেশন ফাইল (build.xml
) এ সরাসরি ব্যবহার করা হয়।
টাস্কটি ফাইল বা ডিরেক্টরি কপি করার জন্য ব্যবহৃত হয়।
উদাহরণ:
<copy file="src/file.txt" tofile="dest/file.txt"/>
এটি src/file.txt
ফাইলটিকে dest/
ডিরেক্টরিতে কপি করবে।
টাস্কটি জাভা সোর্স কোড কম্পাইল করতে ব্যবহৃত হয়।
উদাহরণ:
<javac srcdir="src" destdir="build/classes"/>
এটি src/
ডিরেক্টরির সমস্ত .java
ফাইলগুলো কম্পাইল করে এবং build/classes
ডিরেক্টরিতে .class
ফাইল তৈরি করবে।
টাস্কটি একটি নতুন ডিরেক্টরি তৈরি করতে ব্যবহৃত হয়।
উদাহরণ:
<mkdir dir="build/classes"/>
এটি build/classes
নামক একটি নতুন ডিরেক্টরি তৈরি করবে।
টাস্কটি একটি জাভা আর্কাইভ (JAR) ফাইল তৈরি করতে ব্যবহৃত হয়। এটি .class
ফাইল এবং অন্যান্য রিসোর্স ফাইল একত্রিত করে একটি JAR ফাইল তৈরি করে।
উদাহরণ:
<jar destfile="build/myproject.jar" basedir="build/classes"/>
এটি build/classes
ডিরেক্টরির সমস্ত .class
ফাইল নিয়ে build/myproject.jar
নামক একটি JAR ফাইল তৈরি করবে।
টাস্কটি ফাইল বা ডিরেক্টরি মুছে ফেলার জন্য ব্যবহৃত হয়।
উদাহরণ:
<delete file="build/classes/oldfile.class"/>
এটি build/classes/oldfile.class
ফাইলটি মুছে ফেলবে।
টাস্কটি কনসোলে একটি বার্তা মুদ্রণ করতে ব্যবহৃত হয়। এটি স্ক্রিপ্টের মধ্যে ডিবাগিং বা লগিং করার জন্য সহায়ক।
উদাহরণ:
<echo message="Build is starting..."/>
এটি কনসোলে "Build is starting..."
বার্তা মুদ্রণ করবে।
টাস্কটি একটি URL থেকে ফাইল ডাউনলোড করার জন্য ব্যবহৃত হয়।
উদাহরণ:
<get src="http://example.com/file.zip" dest="downloads/file.zip"/>
এটি http://example.com/file.zip
থেকে ফাইলটি ডাউনলোড করে downloads/file.zip
স্থানে সংরক্ষণ করবে।
Custom Tasks হল সেই টাস্ক যা ডেভেলপাররা নিজের প্রয়োজন অনুসারে তৈরি করে অ্যাপাচি অ্যান্টে যুক্ত করতে পারে। এই টাস্কগুলো ব্যবহারকারী নিজের প্রকল্পের জন্য বিশেষভাবে তৈরি করতে পারে, যাতে বিশেষ ধরনের কার্যক্রম বা কাজ সম্পাদন করা যায় যা বিল্ট-ইন টাস্ক দিয়ে সম্ভব নয়।
execute()
মেথডে আপনি টাস্কের কার্যক্রম নির্ধারণ করবেন।CustomTask.java (Java Class):
import org.apache.tools.ant.Task;
import org.apache.tools.ant.BuildException;
public class CustomTask extends Task {
@Override
public void execute() throws BuildException {
System.out.println("Executing Custom Task");
}
}
এখানে, আমরা একটি CustomTask
ক্লাস তৈরি করেছি যা Task
ক্লাসকে এক্সটেন্ড করেছে এবং execute()
মেথডের মধ্যে টাস্কের কার্যক্রম নির্ধারণ করা হয়েছে।
build.xml (Ant Build File):
<taskdef name="customtask" classname="CustomTask"/>
<target name="runCustomTask">
<customtask/>
</target>
এখানে, taskdef ট্যাগ দিয়ে কাস্টম টাস্কটি ডিফাইন করা হয়েছে এবং পরে runCustomTask টার্গেটে কাস্টম টাস্কটি ব্যবহার করা হয়েছে।
বৈশিষ্ট্য | Built-in Tasks | Custom Tasks |
---|---|---|
পরিচিতি | অ্যাপাচি অ্যান্টের ডিফল্ট টাস্কস | ডেভেলপারদের তৈরি কাস্টম টাস্ক |
কাস্টমাইজেশন | সীমিত কাস্টমাইজেশন | সম্পূর্ণ কাস্টমাইজেশন |
ব্যবহার | সাধারণ কাজ যেমন ফাইল কপি, কম্পাইল, বিল্ড | বিশেষ ধরনের কাজ যেমন ইউটিলিটি তৈরি, কাস্টম লজিক |
সম্পূর্ণতা | অ্যাপাচি অ্যান্টে ডিফল্টভাবে অন্তর্ভুক্ত | কাস্টম ক্লাসের মাধ্যমে তৈরি করা |
পথ | অ্যান্ট বিল্ড ফাইলে সরাসরি ব্যবহৃত | ডেভেলপারকে Java ক্লাস তৈরি করতে হয় |
Built-in Tasks হল অ্যাপাচি অ্যান্টে ডিফল্টভাবে অন্তর্ভুক্ত থাকা টাস্কসমূহ যা সাধারণ কাজের জন্য ব্যবহৃত হয়, যেমন ফাইল কপি করা, ডিরেক্টরি তৈরি করা, সোর্স কোড কম্পাইল করা, এবং অন্যান্য কিছু। অন্যদিকে, Custom Tasks হল কাস্টম টাস্ক যেগুলি ডেভেলপাররা নিজের প্রয়োজন অনুযায়ী তৈরি করে এবং অ্যান্ট বিল্ড ফাইলে ব্যবহার করতে পারে। কাস্টম টাস্ক ব্যবহার করে ডেভেলপাররা তাদের প্রকল্পের জন্য বিশেষ কাজ সম্পাদন করতে পারেন, যা বিল্ট-ইন টাস্কগুলো দিয়ে সম্ভব নয়।
common.read_more