Multiple Modules একসাথে ম্যানেজমেন্ট করা

Maven Multi-module Projects - ম্যাভেন (Maven) - Java Technologies

267

Maven একটি শক্তিশালী টুল যা build automation এবং dependency management প্রক্রিয়াকে সহজ করে তোলে। যখন আপনার প্রোজেক্টে একাধিক মডিউল (modules) থাকে, তখন Maven multi-module projects পরিচালনার জন্য অত্যন্ত কার্যকরী। একটি multi-module Maven project হল এমন একটি প্রোজেক্ট যেখানে একাধিক Maven সাব-প্রোজেক্ট (sub-project) থাকে, এবং এগুলি একসাথে বিল্ড এবং ম্যানেজ করা হয়।

এখানে আমরা Maven Multi-Module Projects কিভাবে কনফিগার এবং পরিচালনা করা যায়, তা আলোচনা করব।


১. Maven Multi-Module Project কি?

Maven Multi-Module Project একটি Maven প্রোজেক্ট যার মধ্যে একাধিক সাব-মডিউল বা সাব-প্রোজেক্ট থাকে। এগুলি সাধারণত একটি মূল প্রোজেক্ট বা প্যারেন্ট প্রোজেক্টের অধীনে থাকে এবং একটি pom.xml ফাইলের মাধ্যমে পরিচালিত হয়। প্রতিটি সাব-মডিউল তার নিজস্ব pom.xml ফাইল থাকতে পারে, তবে মূল pom.xml (parent pom.xml) সমস্ত মডিউলকে একত্রে পরিচালনা করে।

২. Maven Multi-Module Project কনফিগারেশন

এখানে Maven Multi-Module Project কনফিগার করার জন্য একটি উদাহরণ দেওয়া হল। এই উদাহরণে, একটি মূল প্রোজেক্ট এবং দুটি সাব-মডিউল থাকবে।

২.১ মুল POM ফাইল (Parent POM)

মুল pom.xml ফাইলটি সমস্ত মডিউল এবং তাদের ডিপেনডেন্সি ম্যানেজমেন্টের জন্য কনফিগারেশন প্রদান করে। এখানে আপনি modules ট্যাগে সমস্ত সাব-মডিউল তালিকাভুক্ত করেন।

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!-- Parent POM for the multi-module project -->
    <groupId>com.example</groupId>
    <artifactId>parent-project</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <modules>
        <module>module-a</module>
        <module>module-b</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <!-- Example dependency that all modules will inherit -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.12.0</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

এখানে, parent-project প্যারেন্ট পোমের অধীনে দুটি সাব-মডিউল রয়েছে:

  • module-a
  • module-b

এই প্যারেন্ট পোমটি মডিউলগুলির ডিপেনডেন্সি এবং অন্যান্য কনফিগারেশন একত্রিত করে।

২.২ সাব-মডিউল POM ফাইল

প্রতিটি সাব-মডিউলের pom.xml ফাইল থাকবে, তবে সেগুলি প্যারেন্ট পোমের অধীনে পরিচালিত হবে। যেমন:

module-a/pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.example</groupId>
        <artifactId>parent-project</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>module-a</artifactId>

    <dependencies>
        <!-- Module-specific dependencies can be added here -->
    </dependencies>
</project>

module-b/pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.example</groupId>
        <artifactId>parent-project</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>module-b</artifactId>

    <dependencies>
        <!-- Module-specific dependencies can be added here -->
    </dependencies>
</project>

এখানে, প্রতিটি সাব-মডিউল parent পোম ফাইলের অধীনে আছে এবং এর relativePath এ প্যারেন্ট পোমের অবস্থান দেওয়া হয়েছে।

৩. Maven Multi-Module Project বিল্ড করা

একবার আপনি সবকিছু কনফিগার করে ফেললে, আপনি পুরো multi-module project একসাথে বিল্ড করতে পারেন।

Build Command:

mvn clean install

এই কমান্ডটি মুল পোমের মাধ্যমে সমস্ত মডিউল বিল্ড করবে। Maven আপনার সমস্ত মডিউলগুলিকে একে একে ডিপেনডেন্সি অনুযায়ী বিল্ড করবে।

৪. Maven Multi-Module Project এর সুবিধা

  1. Centralized Dependency Management: প্যারেন্ট পোম ফাইলে সকল ডিপেনডেন্সি কনফিগার করার মাধ্যমে সমস্ত মডিউলগুলো একই ডিপেনডেন্সি ব্যবহার করবে, যা কনফিগারেশন সহজ করে।
  2. Single Build Command: একমাত্র mvn clean install কমান্ড দিয়ে আপনি সমস্ত মডিউল একসাথে বিল্ড করতে পারেন, যা সময় এবং প্রচেষ্টা বাঁচায়।
  3. Shared Plugins: আপনি একই Maven প্লাগইন প্যারেন্ট পোমে কনফিগার করে সমস্ত মডিউলের জন্য সেটি ব্যবহার করতে পারেন।
  4. Consistent Versioning: সব মডিউলের জন্য একটি সাধারণ সংস্করণ ব্যবহার করা সহজ হয়, যাতে সংস্করণ ব্যবস্থাপনা এবং আপডেট করার সময় সঙ্গতিপূর্ণতা বজায় থাকে।
  5. Easy to Scale: নতুন মডিউল যোগ করা খুবই সহজ এবং এটি অন্যান্য মডিউলগুলির সাথে সমন্বয় করে কাজ করে।

৫. Multi-Module Project-এ Dependency Management

মাঝে মাঝে, আপনি যদি একটি মডিউল থেকে অন্য মডিউলে ডিপেনডেন্সি যোগ করতে চান, তখন আপনি প্যারেন্ট পোমে সেন্ট্রাল ডিপেনডেন্সি কনফিগার করে এটি করতে পারেন।

উদাহরণ: যদি module-a থেকে module-b-এ ডিপেনডেন্সি যোগ করতে চান, তাহলে module-b/pom.xml-এ module-a যোগ করতে হবে:

<dependencies>
    <dependency>
        <groupId>com.example</groupId>
        <artifactId>module-a</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

এটি নিশ্চিত করবে যে module-b module-a এর ডিপেনডেন্সি হিসেবে কাজ করবে এবং একই বিল্ড প্রক্রিয়া অনুসরণ করবে।


৬. Conclusion

Maven multi-module projects আপনাকে আপনার প্রোজেক্টের মডিউলগুলিকে একত্রে ম্যানেজ করার সুযোগ দেয়। এটি dependency management, plugin configuration, এবং build automation সহজ করে তোলে। একাধিক মডিউল ব্যবস্থাপনা, নির্দিষ্ট প্রোজেক্ট পরিবেশে ডিপেনডেন্সি কনফিগারেশন এবং পুনঃব্যবহারযোগ্যতা নিশ্চিত করতে Maven এর multi-module ফিচার ব্যবহৃত হয়।

এটি বিশেষভাবে বড় এবং জটিল প্রকল্পগুলির জন্য অত্যন্ত উপকারী, যেখানে একাধিক সাব-প্রোজেক্ট একে অপরের উপর নির্ভরশীল থাকে এবং একসাথে পরিচালিত হয়।


Content added By
Promotion

Are you sure to start over?

Loading...