Mojo API ব্যবহার করে Custom Plugin তৈরি করা

Maven তে Custom Plugins তৈরি করা - ম্যাভেন (Maven) - Java Technologies

213

Maven একটি অত্যন্ত জনপ্রিয় বিল্ড টুল যা Java প্রকল্পের জন্য ব্যবহৃত হয় এবং এটি বিভিন্ন কাজ স্বয়ংক্রিয়ভাবে সম্পন্ন করতে সাহায্য করে। তবে, অনেক সময় আপনি যদি কিছু কাস্টম কাজ বা বিশেষ বিল্ড স্টেপ যুক্ত করতে চান, তাহলে Maven Custom Plugin তৈরি করা প্রয়োজন। Mojo API এর মাধ্যমে আপনি সহজেই Maven-এর জন্য কাস্টম প্লাগইন তৈরি করতে পারেন, যা আপনার প্রোজেক্টের জন্য প্রয়োজনীয় কাস্টম টাস্ক বা ফিচার প্রবর্তন করতে সক্ষম।

Mojo API কি?

Mojo API হল Maven প্লাগইন তৈরির জন্য ব্যবহৃত একটি Java API। Mojo একটি কাস্টম টাস্ক বা কাজ যা Maven প্লাগইন দিয়ে বাস্তবায়িত হয়। Mojo API ব্যবহার করে আপনি Maven এর ডিফল্ট কার্যক্রম (যেমন কম্পাইল, টেস্ট, প্যাকেজ) এর বাইরেও কাস্টম কাজ বা কার্যক্রম সম্পাদন করতে পারেন।

Maven Custom Plugin তৈরি করার প্রয়োজনীয়তা

Maven-এ কাস্টম প্লাগইন তৈরি করার কিছু প্রয়োজনীয়তা হতে পারে:

  1. বিশেষ কাজ: যখন আপনার প্রোজেক্টে এমন কিছু কাজ প্রয়োজন হয় যা Maven-এর ডিফল্ট প্লাগইন দিয়ে সমাধান সম্ভব নয়।
  2. ডিপেনডেন্সি ম্যানেজমেন্ট: কোনো নির্দিষ্ট ধরনের ডিপেনডেন্সি বা বিল্ড স্টেপ আপনার প্রকল্পে স্বয়ংক্রিয়ভাবে যুক্ত করা।
  3. স্বয়ংক্রিয় প্রক্রিয়া: বিল্ড প্রক্রিয়া আরও অটোমেটেড করতে কাস্টম কার্যক্রম যুক্ত করা, যেমন কাস্টম লোগিং বা রিপোর্ট জেনারেশন।

Mojo API ব্যবহার করে Maven Custom Plugin তৈরি করা

Maven-এ Custom Plugin তৈরি করতে সাধারণত দুটি মূল অংশ থাকে:

  1. Mojo class: যেখানে প্লাগইনের কাজের লজিক থাকবে।
  2. pom.xml: যেখানে প্লাগইন কনফিগার করা হয়।

Maven Custom Plugin তৈরি করার প্রক্রিয়া

১. Maven Plugin Project তৈরি করা

প্রথমে Maven Plugin Project তৈরি করতে হবে। এটি Maven এর একটি স্ট্যান্ডার্ড প্রকল্প টাইপ।

Maven Plugin Project Structure:

my-maven-plugin
  ├── src
  │    ├── main
  │    │    └── java
  │    │         └── com
  │    │             └── example
  │    │                 └── MyMojo.java
  ├── pom.xml

২. pom.xml কনফিগার করা

Maven Plugin প্রকল্পের জন্য pom.xml ফাইল কনফিগার করা হয়। নিচে একটি সহজ pom.xml ফাইলের উদাহরণ দেওয়া হলো:

<?xml version="1.0" encoding="UTF-8"?>
<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>

    <groupId>com.example</groupId>
    <artifactId>my-maven-plugin</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>maven-plugin</packaging>

    <name>My Maven Plugin</name>

    <dependencies>
        <dependency>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-plugin-api</artifactId>
            <version>3.6.3</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

এখানে:

  • packaging: maven-plugin দ্বারা জানানো হয় যে এটি একটি Maven প্লাগইন।
  • dependencies: Maven Plugin API এবং অন্যান্য প্রয়োজনীয় ডিপেনডেন্সি উল্লেখ করা হয়েছে।

৩. Mojo Class তৈরি করা

এখন আমরা একটি Mojo class তৈরি করব যা আমাদের কাস্টম টাস্ক বা কার্যক্রম সম্পাদন করবে।

MyMojo.java:

package com.example;

import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.AbstractMojo;

/**
 * This is a simple Mojo example.
 */
@Mojo(name = "hello-world", defaultPhase = LifecyclePhase.COMPILE)
public class MyMojo extends AbstractMojo {

    /**
     * This is the goal of the plugin.
     */
    public void execute() throws MojoExecutionException {
        getLog().info("Hello, this is a custom Maven Plugin!");
    }
}

এখানে:

  • @Mojo: এটি একটি অ্যানোটেশন যা মেভেনের কাছে প্লাগইনটি একটি Mojo হিসেবে সংজ্ঞায়িত করে। এখানে name = "hello-world" দ্বারা আমরা প্লাগইনের নাম দিয়েছি এবং defaultPhase = LifecyclePhase.COMPILE দ্বারা এটিকে কম্পাইল ফেজে রান করতে নির্দেশ দিয়েছি।
  • execute(): এই মেথডটি প্লাগইনের কাজের লজিক ধারণ করে, এবং এখানে একটি লগ বার্তা দেওয়ার মাধ্যমে কাজ শুরু করা হয়েছে।

৪. Plugin ডিপ্লয় করা

এখন আপনি যদি এই প্লাগইনটি আপনার প্রোজেক্টে ব্যবহার করতে চান, তবে আপনাকে প্লাগইনটি ডিপ্লয় করতে হবে। আপনি যদি Maven এর local repository-তে ডিপ্লয় করতে চান, তাহলে mvn install কমান্ড চালাতে হবে:

mvn clean install

৫. Plugin ব্যবহার করা

ডিপ্লয় করার পরে, আপনার Maven project এর pom.xml ফাইলে এই প্লাগইনটি ব্যবহার করতে হবে:

<build>
    <plugins>
        <plugin>
            <groupId>com.example</groupId>
            <artifactId>my-maven-plugin</artifactId>
            <version>1.0-SNAPSHOT</version>
            <executions>
                <execution>
                    <goals>
                        <goal>hello-world</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

এখানে, goal হচ্ছে hello-world, যা MyMojo ক্লাসের মধ্যে উল্লেখ করা হয়েছিল।

৬. Plugin রান করা

এখন, আপনি Maven কমান্ড লাইনে এই কাস্টম প্লাগইন রান করতে পারেন:

mvn com.example:my-maven-plugin:1.0-SNAPSHOT:hello-world

এই কমান্ডটি প্লাগইনটি রান করবে এবং "Hello, this is a custom Maven Plugin!" মেসেজটি আউটপুট হিসেবে দেখাবে।

সারাংশ

Mojo API ব্যবহার করে Maven এ কাস্টম প্লাগইন তৈরি করা খুবই সহজ এবং এটি আপনার প্রোজেক্টের প্রয়োজনীয় কার্যক্রম বা টাস্ক কাস্টমাইজ করার জন্য ব্যবহৃত হয়। আপনি Maven এর প্রাথমিক বিল্ড, টেস্ট বা প্যাকেজিং সিস্টেমের বাইরে কিছু কাস্টম কাজ করতে চাইলে Mojo API ব্যবহার করে একটি কাস্টম প্লাগইন তৈরি করতে পারেন। Mojo API এর মাধ্যমে Maven প্লাগইন তৈরি করার ফলে আপনি Maven বিল্ড লাইফসাইকেলের মধ্যে আপনার প্রয়োজনীয় টাস্ক যুক্ত করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...