Apache Ant একটি শক্তিশালী বিল্ড টুল, যা বিভিন্ন কার্যক্রম যেমন ফাইল কপি করা, সোর্স কোড কম্পাইল করা, অ্যাপ্লিকেশন প্যাকেজিং, টেস্টিং, এবং ডিপ্লয়মেন্ট সহজে অটোমেট করার জন্য ব্যবহৃত হয়। এর মধ্যে Copy Task একটি অত্যন্ত গুরুত্বপূর্ণ টাস্ক, যা ব্যবহারকারীদের ফাইল বা ডিরেক্টরি কপি করতে সাহায্য করে। Copy Task দিয়ে আপনি এক বা একাধিক ফাইল, ডিরেক্টরি, অথবা সম্পূর্ণ ফোল্ডার কপি করতে পারেন, এবং বিভিন্ন কনফিগারেশন অপশন ব্যবহার করে কপি প্রক্রিয়াকে নিয়ন্ত্রণ করতে পারেন।
টাস্কটি সাধারণত একটি সোর্স ফাইল বা ডিরেক্টরি থেকে একটি ডেস্টিনেশন ফাইল বা ডিরেক্টরিতে ফাইল কপি করার জন্য ব্যবহৃত হয়। এটি খুবই সাধারণ এবং ব্যবহারে সহজ। src
(source) এবং dest
(destination) অ্যাট্রিবিউটস দ্বারা ফাইলের সোর্স এবং গন্তব্য নির্ধারণ করা হয়।
<copy file="source/file.txt" tofile="destination/file.txt"/>
এই উদাহরণে, source/file.txt
ফাইলটি destination/
ডিরেক্টরিতে কপি করা হবে।
উদাহরণ:
<copy file="source/file.txt" tofile="destination/file.txt"/>
এখানে, file.txt
ফাইলটি source/
ডিরেক্টরি থেকে destination/
ডিরেক্টরিতে কপি হবে।
todir অ্যাট্রিবিউটটি একটি সোর্স ডিরেক্টরি থেকে সমস্ত ফাইল বা ডিরেক্টরি কপি করতে ব্যবহৃত হয়। এটি গন্তব্য হিসেবে একটি ডিরেক্টরি নেয়, এবং সমস্ত ফাইল সেখানে কপি করে।
উদাহরণ:
<copy todir="destination/"/>
এটি সোর্স ডিরেক্টরি থেকে সমস্ত ফাইল এবং সাবডিরেক্টরি destination/
ডিরেক্টরিতে কপি করবে।
overwrite অ্যাট্রিবিউটটি ডিফল্টভাবে true
থাকে, যার মানে হল যে যদি গন্তব্য ফাইল বা ডিরেক্টরি ইতিমধ্যে উপস্থিত থাকে, তবে এটি নতুন ফাইল দ্বারা ওভাররাইট হবে। যদি এটি false
হয়, তবে গন্তব্য ফাইলটি কপি হবে না।
উদাহরণ:
<copy file="source/file.txt" tofile="destination/file.txt" overwrite="false"/>
এটি destination/file.txt
ফাইলটি যদি আগে থেকেই থাকে তবে ওভাররাইট করবে না।
preserveLastModified অ্যাট্রিবিউটটি কপি করা ফাইলের শেষ পরিবর্তনের তারিখ বজায় রাখে।
উদাহরণ:
<copy file="source/file.txt" tofile="destination/file.txt" preserveLastModified="true"/>
এটি সোর্স ফাইলের পরিবর্তনের সময় বজায় রাখবে এবং গন্তব্য ফাইলে সেই সময় সেট করবে।
flatten অ্যাট্রিবিউটটি ডিরেক্টরি স্ট্রাকচার সরিয়ে দিয়ে কেবল ফাইল কপি করতে ব্যবহৃত হয়। এটি সকল ফাইলকে গন্তব্য ডিরেক্টরিতে ফ্ল্যাট (সমতল) আকারে কপি করবে।
উদাহরণ:
<copy todir="destination/" flatten="true">
<fileset dir="source/"/>
</copy>
এটি source/
ডিরেক্টরির সমস্ত ফাইল গন্তব্য destination/
ডিরেক্টরিতে ফ্ল্যাটভাবে কপি করবে।
fileset টাস্কটি ব্যবহার করে আপনি কনফিগার করতে পারেন যে কোন ফাইল কপি করা হবে। এটি ফাইল প্যাটার্ন এবং ইনক্লুড/এক্সক্লুড প্যারামিটার ব্যবহার করে নির্দিষ্ট ফাইল নির্বাচন করতে সাহায্য করে।
উদাহরণ:
<copy>
<fileset dir="source/" includes="*.txt"/>
<tofile="destination/"/>
</copy>
এটি source/
ডিরেক্টরি থেকে সমস্ত .txt
ফাইল destination/
ডিরেক্টরিতে কপি করবে।
verbose অ্যাট্রিবিউটটি ফাইল কপির সময় কপি করা ফাইলগুলির তথ্য দেখানোর জন্য ব্যবহৃত হয়।
উদাহরণ:
<copy file="source/file.txt" tofile="destination/file.txt" verbose="true"/>
এটি কপি করার সময় কপি হওয়া ফাইলের নাম কনসোলে প্রদর্শন করবে।
<project name="FileCopyExample" default="copyFiles">
<target name="copyFiles">
<!-- Copy a single file -->
<copy file="source/file.txt" tofile="destination/file.txt" overwrite="false"/>
<!-- Copy all .txt files from source to destination -->
<copy todir="destination/">
<fileset dir="source/" includes="*.txt"/>
</copy>
<!-- Copy all files while preserving the last modified time -->
<copy todir="destination/" preserveLastModified="true">
<fileset dir="source/"/>
</copy>
<!-- Copy files and flatten the directory structure -->
<copy todir="destination/" flatten="true">
<fileset dir="source/"/>
</copy>
</target>
</project>
এখানে, কয়েকটি উদাহরণ দেওয়া হয়েছে যেখানে:
*.txt
ফাইল কপি করা হচ্ছে।টাস্কটি অ্যাপাচি অ্যান্টের একটি অত্যন্ত গুরুত্বপূর্ণ ফিচার, যা ফাইল এবং ডিরেক্টরি কপি করার জন্য ব্যবহৃত হয়। এটি বিভিন্ন কনফিগারেশন অপশন যেমন todir
, file
, overwrite
, preserveLastModified
, এবং fileset
সহ অত্যন্ত নমনীয় এবং শক্তিশালী। ব্যবহারকারী তাদের প্রয়োজন অনুযায়ী ফাইল কপির জন্য কাস্টম সেটিংস ব্যবহার করতে পারে, যা বিল্ড প্রক্রিয়ায় সঠিক এবং কার্যকরী ফাইল ম্যানিপুলেশন নিশ্চিত করে।
common.read_more