Apache Ant একটি অত্যন্ত নমনীয় এবং শক্তিশালী বিল্ড টুল যা বিভিন্ন ধরনের কাজ সম্পাদন করতে ব্যবহৃত হয়, যেমন ফাইল কপি, কোড কম্পাইল, টেস্টিং, প্যাকেজিং ইত্যাদি। তবে, কখনও কখনও আপনার প্রজেক্টের জন্য ডিফল্ট টাস্কগুলি যথেষ্ট নয়। এই ক্ষেত্রে, আপনি কাস্টম টাস্ক তৈরি করে তা অ্যাপাচি অ্যান্টে অন্তর্ভুক্ত করতে পারেন। কাস্টম টাস্ক তৈরি করা এবং এটি বিল্ড স্ক্রিপ্টে অন্তর্ভুক্ত করা আপনাকে আপনার প্রজেক্টের প্রয়োজন অনুযায়ী বিল্ড টাস্কগুলিকে কাস্টমাইজ করার সুযোগ দেয়।
Custom Task Registration টাস্কটি আপনাকে আপনার নিজের কাস্টম টাস্ক তৈরি এবং তা অ্যান্ট বিল্ড ফাইলে অন্তর্ভুক্ত করার পদ্ধতি সম্পর্কে নির্দেশনা প্রদান করবে।
অ্যাপাচি অ্যান্টে কাস্টম টাস্ক তৈরি করার জন্য আপনাকে Java ক্লাস লিখতে হবে এবং তা <taskdef>
টাস্কের মাধ্যমে অ্যান্ট বিল্ড ফাইলে রেজিস্টার করতে হবে। আপনি Java কোডে কাস্টম টাস্কের কার্যক্রম লিখবেন এবং এটি বিল্ড স্ক্রিপ্টের মধ্যে ব্যবহার করবেন।
<taskdef>
টাস্কের মাধ্যমে Java ক্লাসটি অ্যান্ট বিল্ড ফাইলে রেজিস্টার করা।প্রথমে, আপনি একটি Java ক্লাস তৈরি করবেন যা আপনার কাস্টম টাস্কের কার্যক্রম সংজ্ঞায়িত করবে। এই ক্লাসটি Task
ক্লাস থেকে এক্সটেন্ড করবে এবং execute()
মেথডটি অমান্য করবে, যা কাস্টম কার্যকলাপের জন্য ব্যবহৃত হবে।
import org.apache.tools.ant.Task;
import org.apache.tools.ant.BuildException;
public class MyCustomTask extends Task {
@Override
public void execute() throws BuildException {
System.out.println("Executing custom task...");
}
}
MyCustomTask
ক্লাসটি Task
ক্লাস থেকে এক্সটেন্ড করেছে, যা অ্যাপাচি অ্যান্টের বিল্ড টাস্কে ব্যবহৃত হয়।execute()
মেথডে আপনি কাস্টম কার্যকলাপ নির্ধারণ করবেন। এখানে, এটি কেবল একটি মেসেজ প্রদর্শন করবে: "Executing custom task..."
।একবার কাস্টম টাস্ক Java ক্লাস তৈরি হয়ে গেলে, আপনাকে সেটি অ্যান্ট বিল্ড ফাইলে রেজিস্টার করতে হবে <taskdef>
টাস্ক ব্যবহার করে। এই টাস্কটি আপনাকে Java ক্লাসটি অ্যান্টের মধ্যে রেজিস্টার করতে সাহায্য করবে, যাতে এটি বিল্ড স্ক্রিপ্টে ব্যবহার করা যেতে পারে।
<project name="CustomTaskExample" default="run-custom-task">
<!-- Define the custom task -->
<taskdef name="mytask" classname="com.example.MyCustomTask"/>
<target name="run-custom-task">
<!-- Using the custom task -->
<mytask/>
</target>
</project>
<taskdef>
টাস্কের মাধ্যমে mytask
কাস্টম টাস্কটি রেজিস্টার করা হয়েছে। এখানে name
অ্যাট্রিবিউটটি কাস্টম টাস্কের নাম এবং classname
অ্যাট্রিবিউটটি কাস্টম Java ক্লাসের পুরো পাথ।<mytask/>
টাস্কের মাধ্যমে কাস্টম টাস্কটি ব্যবহার করা হয়েছে।এখন, আপনি বিল্ড ফাইলটি চালালে <mytask/>
টাস্কটি কার্যকর হবে এবং এটি MyCustomTask
ক্লাসের execute()
মেথড চালাবে।
ant run-custom-task
এই কমান্ডটি run-custom-task
টার্গেট চালাবে, যা <mytask/>
কাস্টম টাস্ককে এক্সিকিউট করবে এবং "Executing custom task..."
মেসেজ কনসোলে প্রদর্শিত হবে।
কাস্টম টাস্কের মধ্যে আপনি প্রপার্টি বা প্যারামিটার পাস করতে পারেন, যাতে এটি কাস্টম টাস্কের আচরণ নিয়ন্ত্রণ করতে পারে।
import org.apache.tools.ant.Task;
import org.apache.tools.ant.BuildException;
public class MyCustomTask extends Task {
private String message;
// Setter for the message property
public void setMessage(String message) {
this.message = message;
}
@Override
public void execute() throws BuildException {
if (message == null) {
throw new BuildException("Message is required!");
}
System.out.println("Custom message: " + message);
}
}
setMessage()
মেথডের মাধ্যমে আপনি message
প্রপার্টি সেট করতে পারবেন।execute()
মেথডে, এটি চেক করবে যে message
প্রপার্টি সেট করা আছে কিনা এবং পরে সেই মেসেজ কনসোলে প্রদর্শন করবে।<project name="CustomTaskWithParams" default="run-custom-task">
<!-- Define the custom task with parameters -->
<taskdef name="mytask" classname="com.example.MyCustomTask"/>
<target name="run-custom-task">
<!-- Using the custom task with message parameter -->
<mytask message="Hello, this is a custom task!"/>
</target>
</project>
<mytask message="Hello, this is a custom task!"/>
- এখানে message
প্যারামিটারটি কাস্টম টাস্কে পাস করা হয়েছে।Apache Ant এর কাস্টম টাস্ক তৈরি এবং ব্যবহারের মাধ্যমে আপনি আপনার প্রজেক্টের জন্য বিশেষ টাস্ক তৈরি করতে পারেন যা অ্যান্ট বিল্ড স্ক্রিপ্টে অন্তর্ভুক্ত করা যায়। <taskdef>
টাস্কের মাধ্যমে আপনি কাস্টম টাস্ক রেজিস্টার করবেন এবং তারপর <mytask/>
এর মাধ্যমে এটি চালাতে পারবেন। কাস্টম টাস্কে প্রপার্টি বা প্যারামিটার পাস করে আরও কাস্টম কার্যকলাপ সংজ্ঞায়িত করা সম্ভব, যা আপনাকে আরও নমনীয় এবং স্কেলেবল বিল্ড সিস্টেম তৈরি করতে সাহায্য করে।
common.read_more