Apache Ant-এ <fileset> টাস্কটি এমন একটি গুরুত্বপূর্ণ টাস্ক যা আপনাকে ফাইল বা ডিরেক্টরি নির্বাচন করতে সহায়তা করে। Fileset টাস্কটি File বা Directory নির্বাচন করার জন্য ব্যবহৃত হয় এবং এই ফাইলগুলোর উপর বিভিন্ন কাজ (যেমন কপি, ডিলিট, বা অ্যাকশন) করার জন্য এটি খুব কার্যকরী।
<fileset> টাস্কটি সাধারণত srcdir, includes, excludes ইত্যাদি অ্যাট্রিবিউট ব্যবহার করে কনফিগার করা হয়, যাতে আপনি প্রয়োজনীয় ফাইল বা ডিরেক্টরি নির্বাচন করতে পারেন। এটি ফাইলের পাথ বা প্যাটার্ন নির্ধারণ করে দিয়ে সেই অনুযায়ী কাজ করতে সক্ষম হয়।
Fileset Task এর Syntax
<fileset dir="directory_path">
<include name="file_pattern"/>
<exclude name="exclude_pattern"/>
</fileset>
এখানে:
- dir: সেই ডিরেক্টরি যেখানে ফাইল বা ডিরেক্টরি অবস্থিত।
- include: ফাইল বা ডিরেক্টরি নির্বাচন করার জন্য প্যাটার্ন বা নাম।
- exclude: ফাইল বা ডিরেক্টরি বাদ দেওয়ার জন্য প্যাটার্ন বা নাম।
১. Basic Example: Selecting Files from a Directory
এটি একটি সাধারণ উদাহরণ যেখানে একটি নির্দিষ্ট ডিরেক্টরি থেকে সব .java ফাইল নির্বাচন করা হবে:
<project name="FilesetExample" default="copyFiles" basedir=".">
<target name="copyFiles">
<fileset dir="src">
<include name="**/*.java" />
</fileset>
</target>
</project>
এখানে:
- dir="src":
srcডিরেক্টরির মধ্যে ফাইল খুঁজবে। - include name="/*.java"**: সব
.javaফাইল নির্বাচন করবে।
আউটপুট:
এই স্ক্রিপ্টটি চালানোর সময়, src ডিরেক্টরি থেকে সব .java ফাইল নির্বাচিত হবে এবং আপনি পরবর্তী টাস্কে এগুলো ব্যবহার করতে পারবেন (যেমন কপি বা কম্পাইল করতে)।
২. Including and Excluding Files Using Patterns
এটি একটি উদাহরণ যেখানে ফাইল প্যাটার্ন ব্যবহার করে কিছু ফাইল ইনক্লুড করা এবং কিছু বাদ দেওয়া হবে:
<project name="FilesetExample" default="copyFiles" basedir=".">
<target name="copyFiles">
<fileset dir="src">
<include name="**/*.java" />
<exclude name="**/Test*.java" />
</fileset>
</target>
</project>
এখানে:
- include name="/*.java"**: সমস্ত
.javaফাইল নির্বাচন করবে। - exclude name="/Test*.java"**:
Testদিয়ে শুরু হওয়া.javaফাইলগুলো বাদ দেবে।
আউটপুট:
এই স্ক্রিপ্টটি src ডিরেক্টরির সমস্ত .java ফাইল নির্বাচন করবে, তবে Test দিয়ে শুরু হওয়া .java ফাইলগুলো বাদ দেওয়া হবে।
৩. Selecting Files from Multiple Directories
আপনি যদি একাধিক ডিরেক্টরি থেকে ফাইল নির্বাচন করতে চান, তবে fileset টাস্কটি ব্যবহার করে এটি করতে পারেন।
<project name="FilesetMultipleDirs" default="copyFiles" basedir=".">
<target name="copyFiles">
<fileset dir="src">
<include name="**/*.java" />
</fileset>
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
</target>
</project>
এখানে:
- প্রথম fileset টাস্কটি
srcডিরেক্টরি থেকে সব.javaফাইল নির্বাচন করবে। - দ্বিতীয় fileset টাস্কটি
libডিরেক্টরি থেকে সব.jarফাইল নির্বাচন করবে।
আউটপুট:
এই স্ক্রিপ্টটি src এবং lib ডিরেক্টরি থেকে নির্দিষ্ট ফাইল নির্বাচন করবে এবং পরবর্তী টাস্কে সেগুলো ব্যবহার করতে পারবে।
৪. Using Fileset with Ant Tasks (Fileset অন্য টাস্কে ব্যবহার করা)
Fileset টাস্কটি অন্যান্য Ant টাস্কগুলির সাথে একত্রে ব্যবহার করা যায়, যেমন , , বা টাস্কগুলির মধ্যে।
উদাহরণ: Copying Files with Fileset
<project name="FilesetExample" default="copyFiles" basedir=".">
<target name="copyFiles">
<copy todir="build">
<fileset dir="src">
<include name="**/*.java" />
</fileset>
</copy>
</target>
</project>
এখানে:
- টাস্কটি
srcডিরেক্টরি থেকে সব.javaফাইল build ডিরেক্টরিতে কপি করবে। - fileset এর মাধ্যমে নির্দিষ্ট ফাইল বা ডিরেক্টরি নির্বাচন করা হচ্ছে।
আউটপুট:
এই স্ক্রিপ্টটি src ডিরেক্টরি থেকে সব .java ফাইল কপি করে build ডিরেক্টরিতে রাখবে।
৫. Using Fileset with Multiple Includes and Excludes
একটি ফাইল প্যাটার্নের সাথে multiple includes এবং excludes ব্যবহার করা যেতে পারে, যেমন:
<project name="FilesetMultiplePatterns" default="copyFiles" basedir=".">
<target name="copyFiles">
<copy todir="build">
<fileset dir="src">
<include name="**/*.java" />
<include name="**/*.xml" />
<exclude name="**/*Test*.java" />
</fileset>
</copy>
</target>
</project>
এখানে:
- দুটি include প্যাটার্ন:
.javaএবং.xmlফাইল নির্বাচন করছে। - একটি exclude প্যাটার্ন:
*Test*.javaফাইল বাদ দিচ্ছে।
আউটপুট:
এই স্ক্রিপ্টটি src ডিরেক্টরি থেকে সব .java এবং .xml ফাইল কপি করবে, তবে Test দিয়ে শুরু হওয়া .java ফাইলগুলো বাদ দেবে।
৬. Fileset in Combination with or
আপনি fileset টাস্কটি archive (যেমন zip বা tar) টাস্কের সাথে ব্যবহার করে ফাইলগুলিকে আর্কাইভ করতে পারেন।
<project name="FilesetArchiveExample" default="createArchive" basedir=".">
<target name="createArchive">
<zip destfile="build/archive.zip">
<fileset dir="src">
<include name="**/*.java" />
<exclude name="**/*Test*.java" />
</fileset>
</zip>
</target>
</project>
এখানে:
- টাস্কটি
srcডিরেক্টরি থেকে নির্বাচিত.javaফাইলগুলো জিপ আর্কাইভে যোগ করবে, তবেTestদিয়ে শুরু হওয়া ফাইলগুলো বাদ যাবে।
সারাংশ
<fileset> টাস্কটি Apache Ant-এ ফাইল বা ডিরেক্টরি নির্বাচন করার জন্য ব্যবহৃত হয় এবং এটি বিভিন্ন কাজে সাহায্য করে যেমন:
- ফাইল কপি করা
- ফাইল আর্কাইভ করা
- ফাইল বা ডিরেক্টরি বাদ দেওয়া
- মেসেজিং বা ইনফরমেশন ফিল্টারিং করা
Fileset টাস্কের মাধ্যমে আপনি include, exclude, এবং dir অ্যাট্রিবিউটের মাধ্যমে ফাইল বা ডিরেক্টরি নির্বাচন করতে পারেন, যা আপনার বিল্ড প্রক্রিয়াকে আরও অটোমেটেড এবং কার্যকরী করে তোলে।
Read more