Properties হল ANT-এর একটি গুরুত্বপূর্ণ ফিচার যা আপনাকে বিভিন্ন মান বা কনফিগারেশন ডেটা সংরক্ষণ এবং পুনঃব্যবহার করতে সাহায্য করে। এটি বিশেষত বড় প্রকল্পগুলিতে কাজ করার সময় দরকারী, কারণ এতে কোডের পুনঃব্যবহারযোগ্যতা বাড়ে এবং পুরো বিল্ড স্ক্রিপ্টের রক্ষণাবেক্ষণ সহজ হয়।
ANT-এর Properties হলো এমন নাম-মান পেয়ার যা বিল্ড ফাইলে বিভিন্ন স্থান থেকে অ্যাক্সেস করা যায়। একবার প্রপার্টি সেট করা হলে, আপনি সেই প্রপার্টি ভ্যালুকে একাধিক টার্গেট বা টাস্কে পুনরায় ব্যবহার করতে পারেন। প্রপার্টি সাধারণত immutable (অপরিবর্তনীয়) হয়, অর্থাৎ একবার সেট করার পরে আপনি তার মান পরিবর্তন করতে পারবেন না।
প্রপার্টি সেট করতে এবং ব্যবহার করতে নিচে কিছু উদাহরণ দেওয়া হলো:
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="jar.name" value="my-app.jar"/>
এই উদাহরণে:
src.dir
হলো সোর্স ফাইলের ডিরেক্টরি।build.dir
হলো কম্পাইলড ক্লাস ফাইল রাখার ডিরেক্টরি।jar.name
হলো জার ফাইলের নাম।একবার প্রপার্টি সেট হলে, আপনি সেই প্রপার্টি টাস্ক বা টার্গেটে ব্যবহার করতে পারেন। উদাহরণস্বরূপ:
<target name="compile">
<javac srcdir="${src.dir}" destdir="${build.dir}"/>
</target>
<target name="package">
<jar destfile="${build.dir}/${jar.name}">
<fileset dir="${build.dir}"/>
</jar>
</target>
এখানে:
${src.dir}
এবং ${build.dir}
ব্যবহার করা হয়েছে javac
এবং jar
টাস্কে।${jar.name}
ব্যবহার করা হয়েছে জার ফাইলের নামকে কনফিগার করতে।ANT আপনাকে default প্রপার্টি সেট করার সুযোগও দেয়, যা যদি কোনো প্রপার্টি পূর্বে সেট না করা থাকে, তবে সেটি একটি ডিফল্ট মান হিসেবে কাজ করবে। উদাহরণ:
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="output.file" value="output.jar"/>
<target name="compile">
<javac srcdir="${src.dir}" destdir="${build.dir}"/>
</target>
<target name="package">
<jar destfile="${build.dir}/${output.file}">
<fileset dir="${build.dir}"/>
</jar>
</target>
এখানে, যদি output.file প্রপার্টি সেট না থাকে, তবে output.jar হিসেবে সেট করা থাকবে।
ANT-এ সিস্টেম প্রপার্টি ব্যবহার করা যায় যা আপনাকে সিস্টেম বা পরিবেশগত ভ্যারিয়েবলগুলির মান অ্যাক্সেস করার সুযোগ দেয়:
<property name="java.home" value="${java.home}"/>
এটি সিস্টেমের java.home প্রপার্টির মান ধারণ করবে।
ANT-এ অপারেটিং সিস্টেমের কিছু প্রপার্টি থাকে যা পরিবেশগত তথ্য সংগ্রহ করতে ব্যবহৃত হয়, যেমন:
os.name
: অপারেটিং সিস্টেমের নাম।user.dir
: কাজের ডিরেক্টরি।java.version
: জাভা ভার্সন।ANT-এ একবার একটি প্রপার্টি সেট করার পর, আপনি সেই প্রপার্টির মান পরিবর্তন করতে পারবেন না, কারণ এটি immutable। তবে, আপনি নতুন প্রপার্টি তৈরি করতে পারেন। উদাহরণ:
<property name="debug" value="false"/>
<property name="debug" value="true" unless="debug"/>
এই ক্ষেত্রে, দ্বিতীয় debug
প্রপার্টি প্রথমটি পরিবর্তন করবে না, তবে unless অ্যাট্রিবিউটের সাহায্যে দ্বিতীয়টি false হলে সেট হবে না।
if
এবং unless
), যা ডাইনামিক কনফিগারেশন সম্ভব করে তোলে।property
ট্যাগ ব্যবহার করে সহজেই প্রপার্টির জন্য ডিফল্ট মান সেট করতে পারেন, যা কখনোই নির্দিষ্ট না করা হলে ব্যবহার করা হবে।<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="output.dir" value="dist"/>
<target name="init">
<mkdir dir="${build.dir}"/>
<mkdir dir="${output.dir}"/>
</target>
<target name="compile" depends="init">
<javac srcdir="${src.dir}" destdir="${build.dir}"/>
</target>
<target name="package" depends="compile">
<jar destfile="${output.dir}/project.jar">
<fileset dir="${build.dir}"/>
</jar>
</target>
এখানে:
src.dir
এবং build.dir
প্রপার্টি গুলি ব্যবহার করা হয়েছে javac
এবং jar
টাস্কে।common.read_more