Apache Ant-এ <property> টাস্কটি একটি প্রপার্টি (property) ডিফাইন বা সেট করার জন্য ব্যবহৃত হয়। Properties হল সেই ভেরিয়েবল যা টাস্কের মধ্যে বিভিন্ন মান ধারণ করে এবং পরবর্তী টাস্কগুলিতে ব্যবহার করা যেতে পারে। প্রপার্টি ডিফাইন করা হলে, আপনি সেই মান টাস্কে রেফারেন্স হিসেবে ব্যবহার করতে পারেন।
এটি সাধারণত একটি key-value পেয়ার হিসেবে কাজ করে। প্রপার্টি একটি নির্দিষ্ট name এবং তার value দ্বারা সংজ্ঞায়িত হয় এবং Ant স্ক্রিপ্টের যেকোনো জায়গায় সেই প্রপার্টি ব্যবহার করা সম্ভব হয়।
Property Task এর Syntax
<property name="property_name" value="property_value"/>
- name: প্রপার্টির নাম যা আপনি ডিফাইন করতে চান।
- value: প্রপার্টির মান যা আপনি সেট করতে চান।
১. Basic Example: Defining a Property
এটি একটি মৌলিক উদাহরণ যেখানে একটি প্রপার্টি ডিফাইন করা হচ্ছে।
<project name="PropertyExample" default="showProperty" basedir=".">
<property name="my.property" value="Hello, Apache Ant!" />
<target name="showProperty">
<echo message="${my.property}" />
</target>
</project>
এখানে:
- : এখানে
my.propertyনামক একটি প্রপার্টি ডিফাইন করা হয়েছে যার মানHello, Apache Ant!। - : এটি কনসোলে
my.propertyপ্রপার্টির মান প্রিন্ট করবে।
আউটপুট:
Hello, Apache Ant!
২. Using Property to Define Paths
এটি একটি উদাহরণ যেখানে প্রপার্টি ব্যবহার করে পাথ বা ডিরেক্টরি সেভ করা হচ্ছে, এবং পরবর্তী টাস্কে সেটি ব্যবহার করা হচ্ছে।
<project name="PathExample" default="compile" basedir=".">
<property name="src.dir" value="src" />
<property name="build.dir" value="build/classes" />
<target name="compile">
<mkdir dir="${build.dir}" />
<javac srcdir="${src.dir}" destdir="${build.dir}" />
</target>
</project>
এখানে:
- src.dir এবং build.dir প্রপার্টি ডিফাইন করা হয়েছে।
- ${src.dir} এবং ${build.dir} ব্যবহার করে এগুলো টাস্কে ব্যবহৃত হয়েছে।
আউটপুট:
- এটি src ডিরেক্টরি থেকে কোড কম্পাইল করে এবং build/classes ডিরেক্টরিতে সেগুলো সংরক্ষণ করবে।
৩. Setting Property from the Command Line
আপনি Ant বিল্ড স্ক্রিপ্ট চালানোর সময় command-line থেকে প্রপার্টি মান সেট করতে পারেন। এটি খুবই কার্যকরী যখন আপনি রানটাইমে প্রপার্টির মান পরিবর্তন করতে চান।
ant -Dmy.property="This is a command line property"
এটি my.property নামক প্রপার্টির মান This is a command line property সেট করবে এবং এই মানটি স্ক্রিপ্টের মধ্যে ব্যবহৃত হবে।
<project name="CommandLineProperty" default="showProperty" basedir=".">
<target name="showProperty">
<echo message="${my.property}" />
</target>
</project>
আউটপুট:
This is a command line property
৪. Using Property Files
আপনি properties ফাইল ব্যবহার করে একাধিক প্রপার্টি ডিফাইন করতে পারেন। এটি ব্যবহারকারী বা পরিবেশের উপর ভিত্তি করে প্রপার্টি কনফিগারেশন বদলানোর জন্য খুবই কার্যকরী।
Example: Using a Property File
প্রথমে একটি build.properties ফাইল তৈরি করুন:
src.dir=src
build.dir=build/classes
এখন, আপনার Ant স্ক্রিপ্টে এটি লোড করতে পারেন:
<project name="PropertyFileExample" default="compile" basedir=".">
<!-- Load properties file -->
<property file="build.properties" />
<target name="compile">
<mkdir dir="${build.dir}" />
<javac srcdir="${src.dir}" destdir="${build.dir}" />
</target>
</project>
এখানে:
- : এই টাস্কটি
build.propertiesফাইল থেকে প্রপার্টি লোড করবে। - ${src.dir} এবং ${build.dir} ফাইল থেকে লোড হওয়া প্রপার্টি ব্যবহার করা হবে।
আউটপুট:
- src ডিরেক্টরি থেকে কোড কম্পাইল হবে এবং build/classes ডিরেক্টরিতে সংরক্ষণ হবে।
৫. Property Precedence
Ant এ যদি একই নামের প্রপার্টি একাধিক জায়গায় ডিফাইন করা থাকে, তাহলে property precedence এর নিয়ম অনুসরণ করা হয়। এই প্রক্রিয়াতে command-line প্রপার্টি সর্বোচ্চ অগ্রাধিকার পায়, তারপর properties file এবং শেষে Ant script এর মধ্যে ডিফাইন করা প্রপার্টি।
Example: Property Precedence
ant -Dmy.property="Command line value"
<project name="PropertyPrecedence" default="showProperty" basedir=".">
<!-- Property in build.xml -->
<property name="my.property" value="Ant script value" />
<target name="showProperty">
<echo message="${my.property}" />
</target>
</project>
আউটপুট:
Command line value
এখানে, command-line থেকে my.property এর মান Command line value প্রদান করা হয়েছে, তাই এটি স্ক্রিপ্টে ব্যবহৃত হবে।
৬. Using Property with Condition
<property> টাস্কটি শর্তসাপেক্ষভাবে ব্যবহার করা যেতে পারে, যেমন একটি প্রপার্টি যদি আগে থেকেই সেট না থাকে, তাহলে তাকে একটি ডিফল্ট মান প্রদান করা।
<project name="ConditionalProperty" default="setProperty" basedir=".">
<target name="setProperty">
<property name="my.property" value="Default Value" />
<condition property="my.property" value="Override Value">
<available file="src/example.txt" />
</condition>
<echo message="${my.property}" />
</target>
</project>
এখানে:
- : এটি চেক করবে যে
src/example.txtফাইলটি আছে কি না। - যদি ফাইলটি উপস্থিত থাকে, তবে my.property এর মান
Override Valueহবে, অন্যথায় ডিফল্ট মানDefault Valueহবে।
আউটপুট:
যদি
example.txtফাইলটি থাকে:Override Valueযদি
example.txtফাইলটি না থাকে:Default Value
সারাংশ
<property> টাস্কটি Apache Ant-এ প্রপার্টি ডিফাইন এবং সেট করার জন্য ব্যবহৃত হয়। এটি আপনাকে ডাইনামিকভাবে key-value পেয়ার হিসেবে তথ্য প্রদান করতে সহায়তা করে এবং এই মানগুলি পরে অন্যান্য টাস্কে ব্যবহার করা যেতে পারে। প্রপার্টি command-line, properties file, বা Ant script থেকে লোড হতে পারে এবং এর মান টাস্কের মধ্যে রেফারেন্স করা যায়। এটি path, fileset, javac, এবং jar টাস্কের মতো অনেক টাস্কের জন্য খুবই কার্যকরী।
Read more