Apache Ant হল একটি ওপেন সোর্স বিল্ড টুল, যা Java ভিত্তিক সফটওয়্যার প্রকল্পের বিল্ড এবং ডিপ্লয়মেন্ট প্রক্রিয়াকে স্বয়ংক্রিয় করতে ব্যবহৃত হয়। এর মধ্যে রয়েছে File এবং Directory Management Tasks, যেগুলি ফাইল এবং ডিরেক্টরি সম্পর্কিত বিভিন্ন কাজ যেমন ফাইল কপি করা, মুছে ফেলা, নতুন ডিরেক্টরি তৈরি করা, এবং ফাইলের কনটেন্ট পরিবর্তন করার মতো কাজ করতে ব্যবহৃত হয়।
এই টাস্কগুলি সফটওয়্যার ডেভেলপমেন্টের জন্য খুবই গুরুত্বপূর্ণ, কারণ এগুলির মাধ্যমে আপনি অটোমেটেড বিল্ড এবং ডিপ্লয়মেন্ট প্রক্রিয়াকে আরও কার্যকর এবং দ্রুত করতে পারেন। এখানে আমরা কিছু সাধারণ File এবং Directory Management Tasks এর উদাহরণ নিয়ে আলোচনা করব।
mkdir
টাস্কটি একটি নতুন ডিরেক্টরি তৈরি করতে ব্যবহৃত হয়। এটি নির্দিষ্ট পাথের মধ্যে নতুন একটি ডিরেক্টরি তৈরি করবে।
<mkdir dir="build/classes"/>
এটি build/classes
নামে একটি নতুন ডিরেক্টরি তৈরি করবে।
dir
অ্যাট্রিবিউটের মধ্যে ডিরেক্টরির পাথ নির্ধারণ করা হয় যেখানে নতুন ডিরেক্টরি তৈরি হবে।copy
টাস্কটি একটি ফাইল বা ডিরেক্টরি থেকে অন্য স্থানে কপি করার জন্য ব্যবহৃত হয়।
<copy file="src/resources/config.xml" todir="build/resources"/>
এটি src/resources/config.xml
ফাইলটিকে build/resources
ডিরেক্টরিতে কপি করবে।
<copy todir="build/resources">
<fileset dir="src/resources"/>
</copy>
এটি src/resources
ডিরেক্টরির সমস্ত ফাইল কপি করবে এবং build/resources
ডিরেক্টরিতে রাখবে।
file
: নির্দিষ্ট ফাইল কপি করার জন্য ব্যবহৃত হয়।todir
: গন্তব্য ডিরেক্টরি নির্ধারণ করে যেখানে ফাইল কপি করা হবে।fileset
: একটি নির্দিষ্ট ডিরেক্টরি থেকে সব ফাইল কপি করতে ব্যবহৃত হয়।delete
টাস্কটি একটি ফাইল বা ডিরেক্টরি মুছে ফেলতে ব্যবহৃত হয়।
<delete file="build/classes/oldclass.class"/>
এটি build/classes/oldclass.class
ফাইলটি মুছে ফেলবে।
<delete dir="build/classes"/>
এটি build/classes
ডিরেক্টরি এবং তার সমস্ত কনটেন্ট মুছে ফেলবে।
file
: একটি নির্দিষ্ট ফাইল মুছে ফেলতে ব্যবহৃত হয়।dir
: একটি ডিরেক্টরি এবং তার সমস্ত কনটেন্ট মুছে ফেলতে ব্যবহৃত হয়।rename
টাস্কটি একটি ফাইল বা ডিরেক্টরির নাম পরিবর্তন করতে ব্যবহৃত হয়।
<rename file="oldname.txt" to="newname.txt"/>
এটি oldname.txt
ফাইলটির নাম পরিবর্তন করে newname.txt
করবে।
file
: এটি পুরানো ফাইল বা ডিরেক্টরির নাম ধারণ করে।to
: এটি নতুন নাম ধারণ করে।move
টাস্কটি একটি ফাইল বা ডিরেক্টরি এক স্থান থেকে অন্য স্থানে সরিয়ে নিতে ব্যবহৃত হয়। এটি কপি এবং তারপর ডিলিট করার চেয়ে দ্রুত কাজ করে।
<move file="src/resources/config.xml" tofile="build/resources/config.xml"/>
এটি src/resources/config.xml
ফাইলটিকে সরিয়ে নিয়ে build/resources/config.xml
এ রাখবে।
<move dir="src/resources" todir="build/resources"/>
এটি src/resources
ডিরেক্টরিটি সরিয়ে নিয়ে build/resources
ডিরেক্টরিতে রাখবে।
touch
টাস্কটি একটি নতুন ফাইল তৈরি করতে ব্যবহৃত হয়। এটি কোনও ফাইলের উপস্থিতি পরীক্ষা করতে এবং প্রয়োজন হলে নতুন ফাইল তৈরি করতে সাহায্য করে।
<touch file="build/classes/empty.txt"/>
এটি build/classes/empty.txt
নামের একটি নতুন খালি ফাইল তৈরি করবে।
file
: যে ফাইলটি তৈরি করতে চান তার পাথ এবং নাম।zip
টাস্কটি একাধিক ফাইল বা ডিরেক্টরি একটি একক ZIP আর্কাইভে সঙ্কুচিত করতে ব্যবহৃত হয়।
<zip destfile="dist/project.zip" basedir="build/classes"/>
এটি build/classes
ডিরেক্টরি থেকে সমস্ত ফাইল এবং ফোল্ডার নিয়ে project.zip
নামে একটি ZIP ফাইল তৈরি করবে।
destfile
: ZIP আর্কাইভ ফাইলের পাথ।basedir
: ZIP করার জন্য ডিরেক্টরি বা ফাইলের উৎস।unzip
টাস্কটি একটি ZIP আর্কাইভ এক্সট্র্যাক্ট করতে ব্যবহৃত হয়।
<unzip src="dist/project.zip" dest="build/resources"/>
এটি dist/project.zip
ফাইলটি build/resources
ডিরেক্টরিতে এক্সট্র্যাক্ট করবে।
src
: ZIP ফাইলের পাথ।dest
: এক্সট্র্যাক্ট করার ডিরেক্টরি।fileset
টাস্কটি একটি নির্দিষ্ট প্যাটার্ন অনুযায়ী একাধিক ফাইল নির্বাচন করার জন্য ব্যবহৃত হয়। এটি কপি, ডিলিট, অথবা অন্যান্য কাজের জন্য ফাইল নির্বাচন করতে সাহায্য করে।
<fileset dir="src/resources">
<include name="*.xml"/>
</fileset>
এটি src/resources
ডিরেক্টরির সমস্ত .xml
ফাইলকে নির্বাচিত করবে।
Apache Ant File এবং Directory Management Tasks ব্যবহৃত হয় সফটওয়্যার ডেভেলপমেন্ট প্রকল্পে ফাইল এবং ডিরেক্টরি পরিচালনা করার জন্য। এগুলির মধ্যে ফাইল কপি করা, ফাইল বা ডিরেক্টরি মুছে ফেলা, নতুন ডিরেক্টরি তৈরি করা, ZIP ফাইল তৈরি করা, এবং ফাইল বা ডিরেক্টরি সরানো সহ আরো অনেক কাজ অন্তর্ভুক্ত রয়েছে। এই টাস্কগুলো Ant স্ক্রিপ্টের মাধ্যমে বিল্ড অটোমেশন প্রক্রিয়াকে আরও শক্তিশালী এবং সহজ করে তোলে।
Apache Ant-এ <fileset>
টাস্কটি এমন একটি গুরুত্বপূর্ণ টাস্ক যা আপনাকে ফাইল বা ডিরেক্টরি নির্বাচন করতে সহায়তা করে। Fileset টাস্কটি File বা Directory নির্বাচন করার জন্য ব্যবহৃত হয় এবং এই ফাইলগুলোর উপর বিভিন্ন কাজ (যেমন কপি, ডিলিট, বা অ্যাকশন) করার জন্য এটি খুব কার্যকরী।
<fileset>
টাস্কটি সাধারণত srcdir, includes, excludes ইত্যাদি অ্যাট্রিবিউট ব্যবহার করে কনফিগার করা হয়, যাতে আপনি প্রয়োজনীয় ফাইল বা ডিরেক্টরি নির্বাচন করতে পারেন। এটি ফাইলের পাথ বা প্যাটার্ন নির্ধারণ করে দিয়ে সেই অনুযায়ী কাজ করতে সক্ষম হয়।
<fileset dir="directory_path">
<include name="file_pattern"/>
<exclude name="exclude_pattern"/>
</fileset>
এখানে:
এটি একটি সাধারণ উদাহরণ যেখানে একটি নির্দিষ্ট ডিরেক্টরি থেকে সব .java
ফাইল নির্বাচন করা হবে:
<project name="FilesetExample" default="copyFiles" basedir=".">
<target name="copyFiles">
<fileset dir="src">
<include name="**/*.java" />
</fileset>
</target>
</project>
এখানে:
src
ডিরেক্টরির মধ্যে ফাইল খুঁজবে।.java
ফাইল নির্বাচন করবে।এই স্ক্রিপ্টটি চালানোর সময়, src
ডিরেক্টরি থেকে সব .java
ফাইল নির্বাচিত হবে এবং আপনি পরবর্তী টাস্কে এগুলো ব্যবহার করতে পারবেন (যেমন কপি বা কম্পাইল করতে)।
এটি একটি উদাহরণ যেখানে ফাইল প্যাটার্ন ব্যবহার করে কিছু ফাইল ইনক্লুড করা এবং কিছু বাদ দেওয়া হবে:
<project name="FilesetExample" default="copyFiles" basedir=".">
<target name="copyFiles">
<fileset dir="src">
<include name="**/*.java" />
<exclude name="**/Test*.java" />
</fileset>
</target>
</project>
এখানে:
.java
ফাইল নির্বাচন করবে।Test
দিয়ে শুরু হওয়া .java
ফাইলগুলো বাদ দেবে।এই স্ক্রিপ্টটি src
ডিরেক্টরির সমস্ত .java
ফাইল নির্বাচন করবে, তবে Test
দিয়ে শুরু হওয়া .java
ফাইলগুলো বাদ দেওয়া হবে।
আপনি যদি একাধিক ডিরেক্টরি থেকে ফাইল নির্বাচন করতে চান, তবে 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>
এখানে:
src
ডিরেক্টরি থেকে সব .java
ফাইল নির্বাচন করবে।lib
ডিরেক্টরি থেকে সব .jar
ফাইল নির্বাচন করবে।এই স্ক্রিপ্টটি src
এবং lib
ডিরেক্টরি থেকে নির্দিষ্ট ফাইল নির্বাচন করবে এবং পরবর্তী টাস্কে সেগুলো ব্যবহার করতে পারবে।
Fileset টাস্কটি অন্যান্য Ant টাস্কগুলির সাথে একত্রে ব্যবহার করা যায়, যেমন , , বা টাস্কগুলির মধ্যে।
<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 ডিরেক্টরিতে কপি করবে।এই স্ক্রিপ্টটি src
ডিরেক্টরি থেকে সব .java
ফাইল কপি করে build ডিরেক্টরিতে রাখবে।
একটি ফাইল প্যাটার্নের সাথে 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>
এখানে:
.java
এবং .xml
ফাইল নির্বাচন করছে।*Test*.java
ফাইল বাদ দিচ্ছে।এই স্ক্রিপ্টটি src
ডিরেক্টরি থেকে সব .java
এবং .xml
ফাইল কপি করবে, তবে Test
দিয়ে শুরু হওয়া .java
ফাইলগুলো বাদ দেবে।
আপনি 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 অ্যাট্রিবিউটের মাধ্যমে ফাইল বা ডিরেক্টরি নির্বাচন করতে পারেন, যা আপনার বিল্ড প্রক্রিয়াকে আরও অটোমেটেড এবং কার্যকরী করে তোলে।
Apache Ant একটি শক্তিশালী বিল্ড টুল যা ফাইল আর্কাইভিং বা ফাইল সংরক্ষণ করতে বেশ কয়েকটি টাস্ক সমর্থন করে। এর মধ্যে সবচেয়ে জনপ্রিয় টাস্কগুলো হল <zip>
, <tar>
, এবং <gzip>
। এই টাস্কগুলির মাধ্যমে আপনি ফাইল বা ডিরেক্টরি একত্রিত (archive) করে একটি কম্প্রেসড ফাইল তৈরি করতে পারেন, যা বিশেষভাবে ডিস্ট্রিবিউশন বা ব্যাকআপ প্রক্রিয়ার জন্য গুরুত্বপূর্ণ।
ফাইল আর্কাইভ করা দিয়ে আপনি একাধিক ফাইলকে একটি একক ফাইলে সংরক্ষণ করতে পারবেন এবং এগুলিকে কম্প্রেসও করতে পারবেন যাতে স্টোরেজ স্পেস সাশ্রয় হয়।
এখানে আমরা <zip>
, <tar>
, এবং <gzip>
টাস্কগুলির ব্যবহার এবং কনফিগারেশন দেখে নেব।
<zip>
TaskPurpose: <zip>
টাস্ক ব্যবহার করে আপনি একাধিক ফাইল বা ডিরেক্টরি কম্প্রেসড ZIP ফাইল আর্কাইভ তৈরি করতে পারেন। ZIP ফাইল ফরম্যাট সাধারণত উইন্ডোজ এবং লিনাক্স সিস্টেমে ডেটা স্টোরেজ এবং ট্রান্সফারের জন্য ব্যবহৃত হয়।
<zip destfile="output.zip">
<fileset dir="source_directory"/>
</zip>
<project name="ZipExample" default="create-zip">
<target name="create-zip">
<!-- Create a zip file from files in src directory -->
<zip destfile="archive.zip">
<fileset dir="src"/>
</zip>
</target>
</project>
এখানে:
destfile
: ZIP আর্কাইভের গন্তব্য ফাইল।fileset dir="src"
: "src" ডিরেক্টরির সমস্ত ফাইল এবং সাবডিরেক্টরিগুলিকে ZIP ফাইলে অন্তর্ভুক্ত করবে।includes
/excludes
: ফাইল ফিল্টার করতে ব্যবহার করুন (ফাইল বা এক্সটেনশন অনুযায়ী ফিল্টার করতে)।basedir
: ভিত্তি ডিরেক্টরি যা আপনি আর্কাইভ করতে চান।<tar>
TaskPurpose: <tar>
টাস্ক ব্যবহার করে আপনি TAR আর্কাইভ ফাইল তৈরি করতে পারেন। TAR সাধারণত লিনাক্স এবং ইউনিক্স সিস্টেমে ব্যবহৃত হয়, তবে অন্যান্য সিস্টেমেও ব্যবহার করা যায়।
<tar destfile="output.tar">
<fileset dir="source_directory"/>
</tar>
<project name="TarExample" default="create-tar">
<target name="create-tar">
<!-- Create a tar file from files in src directory -->
<tar destfile="archive.tar">
<fileset dir="src"/>
</tar>
</target>
</project>
এখানে:
destfile
: TAR আর্কাইভের গন্তব্য ফাইল।fileset dir="src"
: "src" ডিরেক্টরির সমস্ত ফাইল এবং সাবডিরেক্টরিগুলিকে TAR ফাইলে অন্তর্ভুক্ত করবে।compression
: TAR ফাইল কম্প্রেস করতে gzip বা bzip2 ব্যবহার করা যেতে পারে।<tar destfile="archive.tar" compression="gzip">
<fileset dir="src"/>
</tar>
এখানে, compression="gzip"
ব্যবহার করলে TAR ফাইলটি gzip ফরম্যাটে কম্প্রেসড হবে।
<gzip>
TaskPurpose: <gzip>
টাস্ক ব্যবহার করে আপনি একটি ফাইলকে gzip ফরম্যাটে কম্প্রেস করতে পারেন। এটি সাধারণত একক ফাইল কম্প্রেস করতে ব্যবহৃত হয়, এবং ওয়েব ডেভেলপমেন্ট, ব্যাকআপ ইত্যাদিতে জনপ্রিয়।
<gzip src="input_file" dest="output_file.gz"/>
<project name="GzipExample" default="compress-file">
<target name="compress-file">
<!-- Compress a file using gzip -->
<gzip src="example.txt" dest="example.txt.gz"/>
</target>
</project>
এখানে:
src
: কম্প্রেস করার জন্য সোর্স ফাইল।dest
: গন্তব্য gzip ফাইল (কম্প্রেসড ফাইল)।একই বিল্ড স্ক্রিপ্টে <zip>
, <tar>
, এবং <gzip>
টাস্ক ব্যবহার করা যেতে পারে।
<project name="ArchiveExample" default="create-archives">
<target name="create-archives">
<!-- Create a zip archive -->
<zip destfile="archive.zip">
<fileset dir="src"/>
</zip>
<!-- Create a tar archive -->
<tar destfile="archive.tar">
<fileset dir="src"/>
</tar>
<!-- Compress a single file using gzip -->
<gzip src="example.txt" dest="example.txt.gz"/>
</target>
</project>
এখানে:
<zip>
: "src" ডিরেক্টরির সমস্ত ফাইলগুলোকে ZIP ফাইলে আর্কাইভ করেছে।<tar>
: "src" ডিরেক্টরির সমস্ত ফাইলগুলোকে TAR ফাইলে আর্কাইভ করেছে।<gzip>
: "example.txt" ফাইলটি GZIP ফরম্যাটে কম্প্রেস করেছে।*.java
, *.txt
, বা **/*.xml
।<untar>
টাস্ক ব্যবহার করে আর্কাইভটি পরীক্ষা করে দেখতে পারেন।<zip>
, <tar>
, এবং <gzip>
টাস্কগুলি অ্যাপাচি অ্যান্টের গুরুত্বপূর্ণ টাস্ক, যা ফাইল বা ডিরেক্টরি আর্কাইভ তৈরি করার জন্য ব্যবহৃত হয়।<zip>
টাস্ক ZIP ফাইল তৈরি করে, <tar>
টাস্ক TAR ফাইল তৈরি করে, এবং <gzip>
টাস্ক ফাইল কম্প্রেস করতে ব্যবহৃত হয়।এই কৌশলগুলি অ্যাপাচি অ্যান্টে আর্কাইভ তৈরি এবং ব্যবস্থাপনার জন্য গুরুত্বপূর্ণ এবং আপনার বিল্ড স্ক্রিপ্টে আরও কার্যকরী অপটিমাইজেশন নিশ্চিত করতে সাহায্য করবে।
Apache Ant হল একটি ওপেন সোর্স বিল্ড টুল যা বিভিন্ন বিল্ড ও ম্যানেজমেন্ট কাজ সম্পাদন করতে ব্যবহৃত হয়। এর মধ্যে ফাইল এবং আর্কাইভ ম্যানিপুলেশন টাস্কগুলোও অন্তর্ভুক্ত রয়েছে, যেমন Unzip এবং Untar টাস্ক। এই টাস্কগুলো ব্যবহার করে আপনি ZIP বা TAR ফাইল আনপ্যাক বা এক্সট্রাক্ট করতে পারেন।
এই সেকশনে, আমরা Unzip এবং Untar টাস্কের ব্যবহার এবং কনফিগারেশন সম্পর্কে বিস্তারিত জানব।
<unzip>
টাস্কটি ZIP ফাইল এক্সট্রাক্ট বা আনপ্যাক করতে ব্যবহৃত হয়। এটি ZIP ফাইলের নির্দিষ্ট ফাইল বা সমস্ত ফাইল বের করে একটি ডিরেক্টরিতে বা নির্দিষ্ট গন্তব্যে রাখে।
<unzip file="build/archive.zip" dest="build/extracted"/>
এটি build/archive.zip
ফাইলটি build/extracted
ডিরেক্টরিতে এক্সট্রাক্ট করবে।
<unzip file="build/archive.zip" dest="build/extracted">
<includes name="*.java"/>
</unzip>
এটি শুধু .java
এক্সটেনশনের ফাইলগুলো archive.zip
থেকে build/extracted
ডিরেক্টরিতে আনপ্যাক করবে।
<unzip file="build/archive.zip" dest="build/extracted">
<excludes name="*.txt"/>
</unzip>
এটি *.txt
ফাইলগুলো বাদ দিয়ে বাকি সব ফাইল এক্সট্রাক্ট করবে।
<untar>
টাস্কটি TAR আর্কাইভ ফাইল এক্সট্রাক্ট করতে ব্যবহৃত হয়। এটি সাধারণত .tar
, .tar.gz
, .tgz
, .tar.bz2
বা .tar.xz
ফাইলগুলির জন্য ব্যবহৃত হয়।
.tar.gz
বা .tar.bz2
), তবে এখানে কম্প্রেশন টাইপটি উল্লেখ করতে হবে।<untar file="build/archive.tar" dest="build/extracted"/>
এটি archive.tar
ফাইলটি build/extracted
ডিরেক্টরিতে এক্সট্রাক্ট করবে।
<untar file="build/archive.tar.gz" dest="build/extracted" compression="gzip"/>
এটি archive.tar.gz
ফাইলটি build/extracted
ডিরেক্টরিতে এক্সট্রাক্ট করবে।
<untar file="build/archive.tar.bz2" dest="build/extracted" compression="bzip2"/>
এটি archive.tar.bz2
ফাইলটি build/extracted
ডিরেক্টরিতে এক্সট্রাক্ট করবে।
টাস্ক | উদ্দেশ্য | কম্প্রেশন সমর্থন |
---|---|---|
ZIP ফাইল এক্সট্রাক্ট করতে ব্যবহৃত হয় | zip ফাইল | |
TAR ফাইল এক্সট্রাক্ট করতে ব্যবহৃত হয় | tar, tar.gz, tar.bz2, tar.xz |
কিছু ক্ষেত্রে, আপনি একাধিক ফাইল বা ডিরেক্টরি এক্সট্রাক্ট করতে চাইতে পারেন। এটি করতে টাস্কে includes
এবং excludes
ব্যবহার করতে পারেন।
<unzip file="build/archive.zip" dest="build/extracted">
<includes name="**/*.java"/>
<excludes name="**/test/**"/>
</unzip>
এটি archive.zip
ফাইল থেকে সমস্ত .java
ফাইল এক্সট্রাক্ট করবে এবং test
ডিরেক্টরির ফাইলগুলো বাদ দেবে।
<unzip>
টাস্কটি ফাইল এক্সট্রাক্ট করার সময় ফাইলগুলির permissions রক্ষা করতে সাহায্য করতে পারে:
<unzip file="build/archive.zip" dest="build/extracted" mode="755"/>
এটি ফাইলগুলো এক্সট্রাক্ট করার সময় তাদের পারমিশন 755
সেট করবে।
আপনি টাস্কে fileset
ব্যবহার করে নির্দিষ্ট ফাইল বা ফোল্ডার এক্সট্রাক্ট করতে পারেন:
<untar file="build/archive.tar.gz" dest="build/extracted">
<fileset dir="build" includes="**/*.java"/>
</untar>
এটি archive.tar.gz
থেকে শুধুমাত্র build
ডিরেক্টরির .java
ফাইলগুলো এক্সট্রাক্ট করবে।
অ্যাপাচি অ্যান্টে Unzip এবং Untar টাস্কগুলির মাধ্যমে আপনি সহজেই আর্কাইভ ফাইলগুলো এক্সট্রাক্ট বা আনপ্যাক করতে পারেন। টাস্কটি ZIP ফাইলের জন্য এবং টাস্কটি TAR ফাইলের জন্য ব্যবহৃত হয়। উভয় টাস্কই বিভিন্ন অপশন দিয়ে কাস্টমাইজ করা যায়, যেমন একাধিক ফাইল বা ডিরেক্টরি এক্সট্রাক্ট করা, ফাইল পারমিশন পরিবর্তন করা, এবং নির্দিষ্ট ফাইল বা ডিরেক্টরি বাদ দেওয়া।
এই টাস্কগুলো অ্যাপাচি অ্যান্টের বিল্ড প্রসেসে আর্কাইভ ম্যানিপুলেশন সহজ করে এবং ফাইল বা ডিরেক্টরি এক্সট্রাকশন প্রক্রিয়াকে দক্ষ ও কার্যকরীভাবে পরিচালনা করতে সহায়তা করে।
অ্যাপাচি অ্যান্ট (Apache Ant) একটি জনপ্রিয় ওপেন সোর্স বিল্ড টুল যা সফটওয়্যার ডেভেলপমেন্টে ব্যবহৃত হয়। এটি XML কনফিগারেশন ফাইলের মাধ্যমে অটোমেটেড বিল্ড, টেস্টিং, ডিপ্লয়মেন্ট এবং অন্যান্য কার্যক্রম পরিচালনা করে। Touch Task অ্যান্টের একটি বিশেষ টাস্ক যা ফাইলের টাইমস্ট্যাম্প (অথবা সময় চিহ্ন) পরিবর্তন করতে ব্যবহৃত হয়। এই টাস্কটি মূলত ফাইলের last modified সময় পরিবর্তন করতে ব্যবহৃত হয়, তবে এটি নতুন ফাইল তৈরি করতে বা বিদ্যমান ফাইলের টাইমস্ট্যাম্প পরিবর্তন করতে সাহায্য করে।
Touch Task ফাইলের টাইমস্ট্যাম্প পরিবর্তন করার জন্য ব্যবহৃত হয়। এটি দুটি মূল কাজ সম্পাদন করে:
এই টাস্কটি সাধারণত বিল্ড স্ক্রিপ্টে ব্যবহৃত হয় যেখানে টাইমস্ট্যাম্পের মাধ্যমে নির্দিষ্ট কাজের ফাইলগুলোর চেক বা ট্র্যাক করা প্রয়োজন।
file অ্যাট্রিবিউটটি ব্যবহার করে আপনি যে ফাইলটির টাইমস্ট্যাম্প পরিবর্তন করতে চান, সেটি নির্ধারণ করতে পারেন।
উদাহরণ:
<touch file="example.txt"/>
এটি example.txt
ফাইলটির টাইমস্ট্যাম্প পরিবর্তন করবে। যদি ফাইলটি না থাকে, এটি নতুন ফাইল তৈরি করবে।
atime অ্যাট্রিবিউটটি ফাইলের last access টাইমস্ট্যাম্প পরিবর্তন করে। এটি মূলত তখন ব্যবহৃত হয় যখন আপনি ফাইলটি শেষবার কখন অ্যাক্সেস করা হয়েছিল তা পরিবর্তন করতে চান।
উদাহরণ:
<touch file="example.txt" atime="true"/>
এটি example.txt
ফাইলটির last access time পরিবর্তন করবে।
mtime অ্যাট্রিবিউটটি ফাইলের last modified টাইমস্ট্যাম্প পরিবর্তন করে। এটি তখন ব্যবহৃত হয় যখন আপনি ফাইলটি কখন শেষবার পরিবর্তন করা হয়েছিল তা নির্ধারণ করতে চান।
উদাহরণ:
<touch file="example.txt" mtime="true"/>
এটি example.txt
ফাইলটির last modified time পরিবর্তন করবে।
timestamp অ্যাট্রিবিউটটি আপনি একটি নির্দিষ্ট সময় সেট করতে পারেন, যেটি ফাইলের টাইমস্ট্যাম্প হিসেবে ব্যবহার করা হবে।
উদাহরণ:
<touch file="example.txt" timestamp="2024-12-25 10:30:00"/>
এটি example.txt
ফাইলটির টাইমস্ট্যাম্প 2024-12-25 10:30:00
এ সেট করবে।
<project name="TouchTaskExample" default="updateTimestamp">
<target name="updateTimestamp">
<!-- Touch an existing file, update the timestamp -->
<touch file="src/oldfile.txt"/>
<!-- Touch a new file, create it with the current timestamp -->
<touch file="src/newfile.txt"/>
<!-- Update the last access time -->
<touch file="src/oldfile.txt" atime="true"/>
<!-- Set a custom timestamp -->
<touch file="src/oldfile.txt" timestamp="2024-12-25 15:00:00"/>
</target>
</project>
এই উদাহরণে, বিভিন্নভাবে টাস্কটি ব্যবহৃত হয়েছে:
oldfile.txt
ফাইলটির টাইমস্ট্যাম্প আপডেট করা হয়েছে।newfile.txt
ফাইল তৈরি করা হয়েছে এবং তার টাইমস্ট্যাম্প সেট করা হয়েছে।atime
ব্যবহার করে oldfile.txt
এর last access time আপডেট করা হয়েছে।timestamp
ব্যবহার করে oldfile.txt
ফাইলটির টাইমস্ট্যাম্প একটি নির্দিষ্ট সময়ে সেট করা হয়েছে।যখন আপনি ইনক্রিমেন্টাল বিল্ড পরিচালনা করছেন, তখন touch
টাস্কটি একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি নিশ্চিত করে যে আপনি ফাইলটির টাইমস্ট্যাম্প পরিবর্তন করে পরবর্তী বিল্ডে ফাইলটি পরিবর্তিত হিসাবে গণ্য করতে পারবেন। যেমন, যদি কোন নির্দিষ্ট ফাইল আপডেট না হলেও টাইমস্ট্যাম্প পরিবর্তন করতে চান, তাহলে আপনি টাস্ক ব্যবহার করতে পারেন।
কোনো ফাইলের ওপর কাজ করার পর, তার টাইমস্ট্যাম্প পরিবর্তন করা প্রয়োজন হতে পারে (যেমন ফাইলের পরিবর্তন ডিটেকশনের জন্য)। touch
টাস্ক ব্যবহার করে এটি করা যায়।
যদি কোনো নির্দিষ্ট ফাইল ইতিমধ্যেই না থাকে, তবে আপনি টাস্ক ব্যবহার করে নতুন ফাইল তৈরি করতে পারেন এবং সেটির টাইমস্ট্যাম্প নির্ধারণ করতে পারেন। এটি সাধারণত বিল্ড স্ক্রিপ্টে নতুন রিসোর্স তৈরি করার জন্য ব্যবহৃত হয়।
টাস্ক অ্যাপাচি অ্যান্টের একটি গুরুত্বপূর্ণ টাস্ক, যা ফাইলের টাইমস্ট্যাম্প (অথবা সময় চিহ্ন) পরিবর্তন করতে ব্যবহৃত হয়। এটি ফাইলের last modified time এবং last access time আপডেট করতে সহায়তা করে এবং যদি ফাইলটি আগে থেকে না থাকে, তবে একটি নতুন ফাইল তৈরি করা যায়। এটি ইনক্রিমেন্টাল বিল্ড বা ফাইল ট্র্যাকিংয়ের জন্য অত্যন্ত দরকারী। atime, mtime, এবং timestamp অপশনের মাধ্যমে আপনি টাইমস্ট্যাম্প কাস্টমাইজ করতে পারেন।
common.read_more