Apache Ant-এ depends
অ্যাট্রিবিউটটি একটি টাস্কের মধ্যে নির্দিষ্ট করে দেয় যে ওই টাস্কটি অন্য কোন টাস্কের ওপর নির্ভরশীল। অর্থাৎ, আপনি যখন কোন টাস্ক রান করতে চান, তখন আপনাকে সেই টাস্কটি রান করার আগে অন্য একটি টাস্ক বা টাস্কগুলির কার্য সম্পাদন করতে হবে।
depends
অ্যাট্রিবিউটটি target টাস্কে ব্যবহৃত হয় এবং এটি একটি বা একাধিক টার্গেটের নাম গ্রহণ করে। এই টার্গেটগুলি ডিপেন্ডেন্ট টাস্ক হিসেবে রান হবে, এরপর বর্তমান টাস্কটি রান হবে।
<target name="target_name" depends="dependency_target1, dependency_target2">
<!-- task definitions -->
</target>
এটি একটি মৌলিক উদাহরণ যেখানে একটি টার্গেটের ডিপেন্ডেন্সি ব্যবহৃত হচ্ছে:
<project name="DependsExample" default="build" basedir=".">
<!-- Clean target: removes old build files -->
<target name="clean">
<echo message="Cleaning build directory..." />
<delete dir="build" />
</target>
<!-- Compile target: compiles the Java code -->
<target name="compile" depends="clean">
<echo message="Compiling Java code..." />
<javac srcdir="src" destdir="build/classes" />
</target>
<!-- Build target: creates a JAR file -->
<target name="build" depends="compile">
<echo message="Building JAR file..." />
<jar destfile="build/myapp.jar" basedir="build/classes" />
</target>
</project>
এখানে:
build
ডিরেক্টরি মুছে দেয়।Cleaning build directory...
Compiling Java code...
Building JAR file...
এটি Ant স্ক্রিপ্টে টাস্কের সিকোয়েন্স এবং ডিপেন্ডেন্সি সেট করার একটি খুব সাধারণ উদাহরণ।
আপনি একাধিক টাস্কের উপর ডিপেন্ডেন্সি নির্ধারণ করতে পারেন, যেখানে একটি টার্গেট একাধিক টাস্কের পরে রান হবে।
<project name="MultipleDependsExample" default="deploy" basedir=".">
<!-- Target to clean old files -->
<target name="clean">
<echo message="Cleaning up old files..." />
</target>
<!-- Target to compile Java files -->
<target name="compile">
<echo message="Compiling the Java code..." />
</target>
<!-- Target to package the application -->
<target name="package">
<echo message="Packaging the application..." />
</target>
<!-- Target to deploy the application, depends on clean, compile, and package -->
<target name="deploy" depends="clean, compile, package">
<echo message="Deploying the application..." />
</target>
</project>
এখানে:
Cleaning up old files...
Compiling the Java code...
Packaging the application...
Deploying the application...
এটি অনেক টাস্কের জন্য একসাথে ডিপেন্ডেন্সি ব্যবহার করার একটি উদাহরণ।
একটি circular dependency তখন ঘটে যখন টাস্কগুলি একে অপরের উপর নির্ভরশীল হয়ে একটি অবিন্যস্ত লুপ তৈরি করে। যেমন:
<project name="CircularDependencyExample" default="taskA" basedir=".">
<target name="taskA" depends="taskB">
<echo message="Executing taskA..." />
</target>
<target name="taskB" depends="taskA">
<echo message="Executing taskB..." />
</target>
</project>
এখানে:
এটা এড়িয়ে চলা উচিত, কারণ এটি স্ক্রিপ্টের কার্যকারিতা নষ্ট করতে পারে। আপনাকে এধরনের লুপ এড়াতে হবে বা সঠিকভাবে ডিপেন্ডেন্সি তৈরি করতে হবে।
Ant টাস্কগুলি সাধারণত একটি নির্দিষ্ট বিল্ড লাইফসাইকেলে থাকে, যেমন clean, compile, test, deploy। এই টাস্কগুলির মধ্যে ডিপেন্ডেন্সি নির্ধারণ করা যায় যাতে কার্যক্রম একটি সঠিক সিকোয়েন্সে সম্পন্ন হয়।
<project name="BuildLifecycle" default="deploy" basedir=".">
<target name="clean">
<echo message="Cleaning build artifacts..." />
</target>
<target name="compile" depends="clean">
<echo message="Compiling source code..." />
</target>
<target name="test" depends="compile">
<echo message="Running tests..." />
</target>
<target name="deploy" depends="test">
<echo message="Deploying application..." />
</target>
</project>
এখানে:
Cleaning build artifacts...
Compiling source code...
Running tests...
Deploying application...
এটি বিল্ড লাইফসাইকেলে টাস্কগুলির নির্দিষ্ট অর্ডারে ডিপেন্ডেন্সি তৈরি করার একটি উদাহরণ।
আপনি depends
অ্যাট্রিবিউটকে condition টাস্কের সাথে একত্রে ব্যবহার করে শর্তসাপেক্ষভাবে টাস্কগুলির উপর নির্ভরশীলতা তৈরি করতে পারেন। উদাহরণস্বরূপ, একটি টাস্ক শুধুমাত্র তখনই রান হবে যখন একটি নির্দিষ্ট প্রপার্টি নির্দিষ্ট মান ধারণ করবে।
<project name="ConditionalDependsExample" default="deploy" basedir=".">
<property name="isReady" value="true" />
<target name="prepare" depends="checkCondition">
<echo message="Preparing..." />
</target>
<target name="checkCondition">
<condition property="isReady" value="true">
<equals arg1="${isReady}" arg2="true" />
</condition>
</target>
<target name="deploy" depends="prepare">
<echo message="Deploying..." />
</target>
</project>
এখানে:
isReady
প্রপার্টি যদি true
হয়, তবে prepare টাস্কটি চলবে এবং পরে deploy টাস্কটি চালানো হবে।Preparing...
Deploying...
এটি depends অ্যাট্রিবিউট এবং condition টাস্ক ব্যবহার করে শর্তসাপেক্ষ ডিপেন্ডেন্সি তৈরি করার একটি উদাহরণ।
depends
অ্যাট্রিবিউটটি Apache Ant-এ টাস্কের মধ্যে ডিপেন্ডেন্সি কনফিগার করার জন্য ব্যবহৃত হয়, যা একটি টাস্কের পরবর্তী কার্যক্রম নির্ধারণ করে। এটি আপনাকে একাধিক টাস্কের মধ্যে সঠিক অর্ডারে কাজ সম্পাদন করতে সহায়তা করে। depends
অ্যাট্রিবিউট ব্যবহার করে আপনি টাস্কগুলির মধ্যে সঠিক সম্পর্ক এবং কার্যক্রমের সিকোয়েন্স তৈরি করতে পারেন, যা বিল্ড প্রক্রিয়াকে আরও কার্যকরী ও অটোমেটেড করে তোলে।
common.read_more