অ্যাপাচি অ্যান্ট (Apache ANT) ফাইল সিস্টেমে কাজ করার জন্য শক্তিশালী টুলস সরবরাহ করে, যা ফাইল ম্যাচিং (Matching), ফিল্টারিং (Filtering) এবং সিলেকশন (Selection) করতে সাহায্য করে। এগুলো বিশেষত বড় প্রজেক্টে ফাইল পরিচালনার প্রক্রিয়াকে সহজ করে।
File Matching: ফাইল নির্বাচন করার নিয়ম
ANT-এর ফাইল ম্যাচিং প্যাটার্ন ব্যবহার করে নির্দিষ্ট ফাইল বা ডিরেক্টরি চিহ্নিত করা যায়। এটি সাধারণত fileset এলিমেন্টে ব্যবহৃত হয়।
fileset এর গঠন
fileset একটি ডিরেক্টরি থেকে নির্দিষ্ট প্যাটার্নের ফাইল নির্বাচন করে:
<fileset dir="src">
<include name="**/*.java" />
<exclude name="**/test/**" />
</fileset>
- dir: যে ডিরেক্টরির ফাইলগুলো নির্বাচন করা হবে।
- include: কোন ফাইলগুলো অন্তর্ভুক্ত হবে তার প্যাটার্ন।
- exclude: কোন ফাইলগুলো বাদ দেওয়া হবে তার প্যাটার্ন।
File Matching প্যাটার্ন
*: একক লেভেলের যেকোনো ফাইল বা ডিরেক্টরি।
উদাহরণ:*.javaসব.javaফাইল নির্বাচন করবে।**: যে কোনো ডিরেক্টরি লেভেলে যেকোনো ফাইল বা ডিরেক্টরি।
উদাহরণ:**/*.javaসব.javaফাইল নির্বাচন করবে, ডিরেক্টরি লেভেল নির্বিশেষে।?: একটি একক অক্ষর রিপ্রেজেন্ট করে।
উদাহরণ:file?.txtম্যাচ করবেfile1.txt,file2.txt, কিন্তুfile12.txtনয়।
File Filtering: কনটেন্টের ভিত্তিতে ফাইল প্রসেসিং
ফাইল ফিল্টারিং ফাইলের কনটেন্ট বা নির্দিষ্ট প্যারামিটারের উপর ভিত্তি করে ফাইলগুলো প্রসেস করে।
filterchain ব্যবহার
filterchain এলিমেন্ট ফাইল প্রসেসিংয়ের সময় ফিল্টার প্রয়োগ করতে সাহায্য করে:
<copy todir="dest">
<fileset dir="src" />
<filterchain>
<replacetokens>
<token key="PLACEHOLDER" value="ActualValue" />
</replacetokens>
</filterchain>
</copy>
replacetokens: ফাইলের মধ্যে নির্দিষ্ট টেক্সটকে নতুন টেক্সট দিয়ে প্রতিস্থাপন করে।
উদাহরণ:PLACEHOLDERকেActualValueএ পরিবর্তন করা।
Predefined Filters
linecontains: নির্দিষ্ট শব্দ বা বাক্যাংশ থাকা লাইনগুলোকে নির্বাচন করে।
উদাহরণ:<filterchain> <linecontains> <contains value="IMPORTANT" /> </linecontains> </filterchain>
Selector Task: ফাইল সিলেকশন নিয়ন্ত্রণ
সিলেক্টর (Selector) টাস্ক ব্যবহার করে ফাইল নির্বাচন আরও নির্দিষ্ট করা যায়, যেমন ফাইল সাইজ, টাইমস্ট্যাম্প, বা নাম।
Built-in Selectors
size Selector
ফাইল সাইজের উপর ভিত্তি করে ফাইল নির্বাচন করে:
<fileset dir="src">
<size value="10k" />
</fileset>
- value: সাইজ নির্ধারণ করে (যেমন
10k,1m)।
date Selector
নির্দিষ্ট সময়সীমার ফাইল নির্বাচন করে:
<fileset dir="src">
<date datetime="2024-12-01T00:00:00" when="before" />
</fileset>
- datetime: সময় নির্ধারণ করে।
- when:
beforeবাafterউল্লেখ করে সময়সীমা।
type Selector
ফাইল বা ডিরেক্টরি নির্বাচন করে:
<fileset dir="src">
<type type="file" />
</fileset>
- type:
fileবাdirব্যবহার করা যায়।
contains Selector
নির্দিষ্ট কনটেন্ট থাকা ফাইল নির্বাচন করে:
<fileset dir="src">
<contains text="TODO" />
</fileset>
- text: ফাইলে থাকা কনটেন্ট।
modified Selector
নির্দিষ্ট সময়ের মধ্যে পরিবর্তিত ফাইল নির্বাচন করে:
<fileset dir="src">
<modified millis="60000" />
</fileset>
- millis: শেষ ৬০ সেকেন্ডে পরিবর্তিত ফাইল।
উদাহরণ: File Matching, Filtering, এবং Selector Task একসঙ্গে ব্যবহার
<project name="FileManagement" default="process">
<target name="process">
<copy todir="output">
<fileset dir="src">
<include name="**/*.java" />
<exclude name="**/test/**" />
<size value="10k" />
<contains text="IMPORTANT" />
</fileset>
<filterchain>
<replacetokens>
<token key="VERSION" value="1.0" />
</replacetokens>
</filterchain>
</copy>
</target>
</project>
এখানে:
.javaফাইল নির্বাচন করা হয়েছে।10kএর কম সাইজের ফাইল এবং "IMPORTANT" শব্দ থাকা ফাইল ফিল্টার করা হয়েছে।- "VERSION" প্লেসহোল্ডারকে
1.0এ প্রতিস্থাপন করা হয়েছে।
সারাংশে, ANT-এর File Matching, Filtering এবং Selector Task ফাইল পরিচালনা ও প্রসেসিংয়ের ক্ষেত্রে কার্যকর একটি সমাধান। এটি বড় প্রজেক্টের ফাইল পরিচালনা আরও সংগঠিত, দ্রুত এবং নির্ভুল করতে সাহায্য করে।
Read more