Condition Task: শর্তের উপর ভিত্তি করে Task চালানো

Java Technologies - অ্যাপাচি অ্যান্ট টাস্কস (Apache ANT Tasks) কন্ডিশনাল Task |
182
182

Apache Ant-এ <condition> টাস্কটি শর্তের ভিত্তিতে নির্দিষ্ট টাস্ক চালানোর জন্য ব্যবহৃত হয়। এটি সাধারণত ব্যবহার করা হয় conditional logic (শর্তসাপেক্ষ লজিক) প্রয়োগ করতে, যেমন যদি কোনো ফাইল বা ডিরেক্টরি বিদ্যমান থাকে, যদি কোনো প্রপার্টি নির্দিষ্ট মানের সাথে মিলে, বা কোনো প্যাটার্ন অনুসারে কিছু ফাইল নির্বাচিত হয়। এটি বিল্ড প্রক্রিয়াতে শর্তাধীন কার্যক্রম পরিচালনা করতে সহায়ক।

Condition Task এর Syntax

<condition>
    <taskname ... />
</condition>
  • taskname: এটি যে টাস্কটি চালাতে চান, তার নাম বা কার্যক্রম হবে।
  • : এটি একটি logical expression চেক করবে এবং সত্য (true) হলে নির্দিষ্ট টাস্কটি কার্যকরী হবে।

১. Basic Example: Using Condition Task

এটি একটি মৌলিক উদাহরণ যেখানে condition টাস্ক ব্যবহার করে একটি নির্দিষ্ট কাজ সম্পাদন করা হবে, যদি কোনো ফাইল বা ডিরেক্টরি বিদ্যমান থাকে।

<project name="ConditionExample" default="checkFile" basedir=".">
    
    <!-- Defining condition to check file existence -->
    <target name="checkFile">
        <condition property="file.exists">
            <available file="src/example.txt" />
        </condition>
        
        <!-- If file exists, echo a message -->
        <echo message="File exists!" if="file.exists"/>
        <echo message="File does not exist." unless="file.exists"/>
    </target>

</project>

এখানে:

  • : এটি চেক করবে যে src/example.txt ফাইলটি বর্তমান ডিরেক্টরিতে আছে কি না।
  • : যদি ফাইলটি থাকে, তবে "File exists!" বার্তা কনসোলে প্রিন্ট হবে।
  • : যদি ফাইলটি না থাকে, তবে "File does not exist." বার্তা প্রিন্ট হবে।

আউটপুট (ফাইল বিদ্যমান হলে):

File exists!

আউটপুট (ফাইল না থাকলে):

File does not exist.

২. Using Condition Task with Property Comparison

আপনি যদি কোনো প্রপার্টির মানের উপর ভিত্তি করে শর্ত প্রয়োগ করতে চান, তবে বা শর্ত ব্যবহার করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি প্রপার্টির মানের সঙ্গে তুলনা করা হবে।

<project name="ConditionPropertyExample" default="checkProperty" basedir=".">
    
    <!-- Defining condition to compare property -->
    <property name="my.property" value="true" />
    
    <target name="checkProperty">
        <condition property="is.property.true">
            <equals arg1="${my.property}" arg2="true"/>
        </condition>
        
        <echo message="Property is true!" if="is.property.true"/>
        <echo message="Property is false." unless="is.property.true"/>
    </target>

</project>

এখানে:

  • : এটি চেক করবে যে my.property প্রপার্টির মান true এর সমান কি না।
  • : যদি প্রপার্টি সত্যি হয়, তবে "Property is true!" বার্তা প্রিন্ট হবে।
  • : যদি প্রপার্টির মান false হয়, তবে "Property is false." বার্তা প্রিন্ট হবে।

আউটপুট (প্রপার্টি সত্যি হলে):

Property is true!

আউটপুট (প্রপার্টি মিথ্যা হলে):

Property is false.

৩. Using to Check for File or Directory Existence

<available> টাস্কটি ফাইল বা ডিরেক্টরি বা রিসোর্সের উপস্থিতি যাচাই করতে ব্যবহৃত হয়। এটি টাস্কের সাথে শর্ত প্রয়োগের জন্য খুবই কার্যকরী।

<project name="CheckFileDirectory" default="checkDirectory" basedir=".">
    
    <!-- Defining condition to check directory existence -->
    <target name="checkDirectory">
        <condition property="dir.exists">
            <available dir="src"/>
        </condition>
        
        <echo message="Directory exists!" if="dir.exists"/>
        <echo message="Directory does not exist." unless="dir.exists"/>
    </target>
</project>

এখানে:

  • : এটি চেক করবে যে src ডিরেক্টরি উপস্থিত কি না।
  • : যদি ডিরেক্টরি থাকে, তবে "Directory exists!" বার্তা প্রিন্ট হবে।
  • : যদি ডিরেক্টরি না থাকে, তবে "Directory does not exist." বার্তা প্রিন্ট হবে।

আউটপুট (ডিরেক্টরি বিদ্যমান হলে):

Directory exists!

আউটপুট (ডিরেক্টরি না থাকলে):

Directory does not exist.

৪. Using for Negative Conditions

<unless> টাস্কটি শর্ত প্রয়োগের বিপরীত কাজে ব্যবহৃত হয়, যেখানে আপনি যদি নির্দিষ্ট শর্ত পূর্ণ না হয়, তবেই একটি টাস্ক চালাতে চান।

<project name="UnlessConditionExample" default="checkCondition" basedir=".">
    
    <!-- Defining condition to check property and execute task unless condition is true -->
    <property name="is.production" value="false" />
    
    <target name="checkCondition">
        <condition property="is.dev.environment">
            <equals arg1="${is.production}" arg2="false"/>
        </condition>
        
        <echo message="This is a development environment." unless="is.dev.environment"/>
    </target>

</project>

এখানে:

  • : এটি চেক করবে যে is.production প্রপার্টির মান false কি না।
  • : যদি is.production false হয়, তাহলে "This is a development environment." বার্তা প্রিন্ট হবে।

আউটপুট:

This is a development environment.

৫. Using with Condition Task

<path> টাস্কের সাথে condition টাস্ক ব্যবহার করে আপনি ক্লাসপাথ চেক বা অন্যান্য রিসোর্সের উপস্থিতি শর্তসাপেক্ষভাবে যাচাই করতে পারেন।

<project name="CheckClasspath" default="checkClasspath" basedir=".">
    
    <!-- Defining classpath condition -->
    <path id="my.classpath">
        <fileset dir="lib" includes="*.jar"/>
    </path>
    
    <target name="checkClasspath">
        <condition property="classpath.exists">
            <pathref refid="my.classpath"/>
        </condition>
        
        <echo message="Classpath exists!" if="classpath.exists"/>
        <echo message="Classpath does not exist." unless="classpath.exists"/>
    </target>

</project>

এখানে:

  • : এটি my.classpath ক্লাসপাথ চেক করবে, যেখানে lib ডিরেক্টরি থেকে JAR ফাইল থাকবে।
  • : যদি ক্লাসপাথ থাকে, তবে "Classpath exists!" বার্তা প্রিন্ট হবে।
  • : যদি ক্লাসপাথ না থাকে, তবে "Classpath does not exist." বার্তা প্রিন্ট হবে।

আউটপুট:

Classpath exists!

সারাংশ

<condition> টাস্কটি Apache Ant-এ শর্তসাপেক্ষ লজিক প্রয়োগের জন্য ব্যবহৃত হয়, যা আপনাকে নির্দিষ্ট শর্ত পূর্ণ হলে একটি নির্দিষ্ট টাস্ক চালানোর সুযোগ দেয়। এটি বিভিন্ন শর্তের মাধ্যমে কার্যক্রম নিয়ন্ত্রণ করতে সহায়তা করে, যেমন ফাইল বা ডিরেক্টরি উপস্থিতি চেক করা, প্রপার্টির মানের সাথে তুলনা করা, বা শর্তের ভিত্তিতে আলাদা কাজ করা। <condition>, <available>, <equals>, <unless> ইত্যাদি টাস্কের মাধ্যমে আপনি আপনার Ant build process-এ শর্তাবলী এবং লজিকাল ফ্লো প্রয়োগ করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion