मावेन वापरून अवलंबनांसह एक एक्झिक्यूटेबल JAR तयार करणे

मावेन वापरून अवलंबनांसह एक एक्झिक्यूटेबल JAR तयार करणे
मावेन वापरून अवलंबनांसह एक एक्झिक्यूटेबल JAR तयार करणे

मावेन प्रकल्पांना सिंगल एक्झिक्यूटेबल JAR मध्ये पॅकेजिंग

Java प्रकल्पांसह काम करताना, सुलभ वितरणासाठी आपला अनुप्रयोग एकाच एक्झिक्यूटेबल JAR फाइलमध्ये पॅकेज करणे आवश्यक असते. मावेन, एक शक्तिशाली बिल्ड ऑटोमेशन टूल, विकसकांना या सिंगल आउटपुट JAR मध्ये सर्व आवश्यक अवलंबन समाविष्ट करण्यास अनुमती देते.

हा लेख तुमच्या मावेन प्रोजेक्टला कॉन्फिगर करण्यासाठी आवश्यक असलेल्या चरणांमध्ये तुमच्या अंतिम एक्झिक्यूटेबल जेएआरमध्ये सर्व अवलंबित्व JAR समाविष्ट करण्यासाठी मार्गदर्शन करेल. या सूचनांचे अनुसरण करून, तुम्ही उपयोजन प्रक्रिया सुलभ कराल आणि तुमचा अर्ज वेगवेगळ्या वातावरणात सुरळीतपणे चालेल याची खात्री कराल.

आज्ञा वर्णन
<plugin> बिल्ड प्रक्रियेदरम्यान वापरण्यासाठी मावेन प्लगइन परिभाषित करते. प्लगइन विशिष्ट कार्ये करू शकतात जसे की कोड संकलित करणे किंवा प्रकल्पाचे पॅकेज करणे.
<groupId> Maven प्रकल्पासाठी गट अभिज्ञापक निर्दिष्ट करते, सामान्यतः एक उलट डोमेन नाव.
<artifactId> आर्टिफॅक्टच्या आयडेंटिफायरची व्याख्या करते, जे प्रकल्पाचे नाव आहे.
<version> प्रकल्पाची वर्तमान आवृत्ती दर्शवते.
<build> प्लगइन आणि संसाधनांसह प्रकल्पासाठी बिल्ड कॉन्फिगरेशन समाविष्ट आहे.
<descriptorRef> वापरण्यासाठी मावेन असेंब्ली प्लगइनसाठी पूर्वनिर्धारित वर्णनकर्त्याचा संदर्भ देते, जसे की "जार-विद-अवलंबन".
<mainClass> JAR फाइल रन केल्यावर कार्यान्वित करावयाचा मुख्य वर्ग निर्दिष्ट करते.
<execution> वेगवेगळ्या बिल्ड टप्प्यांवर पूर्ण करावयाची कार्ये निर्दिष्ट करून, प्लगइनमध्ये अंमलबजावणी ब्लॉक परिभाषित करते.
mvn clean package सर्व अवलंबनांसह, प्रकल्प साफ करण्यासाठी आणि JAR फाइलमध्ये पॅकेज करण्यासाठी आदेश.
java -jar target/...jar व्युत्पन्न केलेली JAR फाईल चालविण्यासाठी आदेश, JAR चा मार्ग निर्दिष्ट करा.

Maven सह एक एक्झिक्यूटेबल JAR तयार करणे आणि चालवणे

वर प्रदान केलेल्या स्क्रिप्ट्स एका एक्झिक्युटेबल JAR फाईलमध्ये त्याच्या सर्व अवलंबनांना पॅकेज करण्यासाठी मॅवेन प्रकल्प कसे कॉन्फिगर करायचे ते दाखवतात. पहिली स्क्रिप्ट मावेन आहे pom.xml फाइल, ज्यामध्ये प्रकल्पाचे कॉन्फिगरेशन समाविष्ट आहे. या फाइलमध्ये, द मावेन असेंब्ली प्लगइन परिभाषित करण्यासाठी टॅगचा वापर केला जातो. सर्व अवलंबित्वांचा समावेश असलेल्या एक्झिक्युटेबल JAR तयार करण्यासाठी हे प्लगइन महत्त्वपूर्ण आहे. द <descriptorRefs> प्लगइन कॉन्फिगरेशनमधील टॅग चा वापर निर्दिष्ट करते jar-with-dependencies वर्णनकर्ता, जे सुनिश्चित करते की सर्व प्रकल्पाची अवलंबित्व अंतिम JAR फाइलमध्ये पॅकेज केली आहे. द <mainClass> च्या आत टॅग करा विभाग अत्यावश्यक आहे कारण तो मावेनला सांगते की JAR कार्यान्वित झाल्यावर कोणत्या वर्गात चालवायची मुख्य पद्धत आहे.

<execution> प्लगइन कॉन्फिगरेशनच्या आत ब्लॉक जेथे क्रिया होते. हे प्लगइनचे ध्येय निर्दिष्ट करते दरम्यान अंमलात आणले पाहिजे package बिल्ड लाइफसायकलचा टप्पा. यामुळे अवलंबित्वांसह JAR फाईल तयार करण्यास चालना मिळते. दुसरी स्क्रिप्ट ही एक साधी कमांड लाइन सूचना आहे: . ही कमांड प्रोजेक्ट साफ करते (मागील बिल्ड आर्टिफॅक्ट्स काढून टाकते), सोर्स कोड संकलित करते, चाचण्या चालवते आणि प्रोजेक्टला JAR फाईलमध्ये पॅकेज करते. अंतिम JAR फाइल मध्ये स्थित असेल target प्रकल्पाची निर्देशिका आणि त्यानुसार नाव दिले artifactId आणि version मध्ये निर्दिष्ट केले आहे pom.xml.

मावेन वापरून अवलंबनांसह एक एक्झिक्यूटेबल JAR फाइल तयार करणे

मावेन कॉन्फिगरेशन स्क्रिप्ट

<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-app</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.3.0</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>com.example.MainClass</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

JAR पॅकेज करण्यासाठी Maven कमांड चालवत आहे

कमांड लाइन सूचना

पॅकेजिंग अवलंबित्वासाठी प्रगत मावेन तंत्र

Maven सह एक्झिक्युटेबल JAR तयार करण्यासाठी मूलभूत कॉन्फिगरेशनच्या पलीकडे, अतिरिक्त तंत्रे आहेत जी तुमची बिल्ड प्रक्रिया वाढवू शकतात. अशाच एका तंत्रात वापरणे समाविष्ट आहे shade च्या ऐवजी प्लगइन १५ प्लगइन Maven शेड प्लगइन uber-JARs (अवलंबनांसह JARs समाविष्ट) तयार करण्यासाठी अधिक प्रगत वैशिष्ट्ये ऑफर करते. हे तुम्हाला क्लासपाथ संघर्ष टाळण्यासाठी पॅकेजेसचे नाव बदलण्याची परवानगी देते आणि डुप्लिकेट क्लासेस आणि संसाधनांसाठी चांगले हाताळणी प्रदान करते. याव्यतिरिक्त, हे अंतिम JAR मध्ये कोणत्या अवलंबित्वांचा समावेश आहे यावर सूक्ष्म नियंत्रण प्रदान करते.

दुसरी महत्त्वाची बाब म्हणजे तुमच्या JAR फाइलचा आकार व्यवस्थापित करणे. मोठ्या JAR फायली अवजड आणि ट्रान्सफर किंवा लोड होण्यास मंद असू शकतात. द maven-shade-plugin तुम्हाला अनावश्यक फाइल्स आणि क्लासेस वगळण्याची परवानगी देऊन यामध्ये मदत करू शकते, त्यामुळे अंतिम JAR चा आकार कमी होईल. तुम्ही न वापरलेले वर्ग किंवा अनावश्यक संसाधने यासारखी अनावश्यक माहिती काढून JAR कमी करण्यासाठी प्लगइन कॉन्फिगर देखील करू शकता. असंख्य अवलंबनांसह मोठ्या प्रकल्पांवर काम करताना या प्रगत कॉन्फिगरेशन्स विशेषतः उपयुक्त ठरू शकतात.

मावेन एक्झिक्युटेबल JAR साठी सामान्य प्रश्न आणि उपाय

  1. मी माझ्या JAR मध्ये मुख्य वर्ग कसा निर्दिष्ट करू?
  2. आपण वापरून मुख्य वर्ग निर्दिष्ट करू शकता <mainClass> च्या आत टॅग करा Maven प्लगइन कॉन्फिगरेशनचा विभाग.
  3. मी अंतिम JAR मधून विशिष्ट अवलंबित्व कसे वगळू शकतो?
  4. वापरा excludes अंतिम JAR मध्ये समाविष्ट करू नये अशा अवलंबित्व निर्दिष्ट करण्यासाठी प्लगइन कॉन्फिगरेशनमध्ये टॅग करा.
  5. uber-JAR म्हणजे काय?
  6. uber-JAR ही एक JAR फाईल आहे ज्यामध्ये केवळ तुमचा संकलित कोडच नाही तर तिच्या सर्व अवलंबनांचा समावेश आहे.
  7. मी माझ्या JAR मध्ये क्लासपाथ संघर्ष कसे टाळू शकतो?
  8. maven-shade-plugin संघर्ष टाळण्यासाठी तुम्हाला अवलंबित्वांमध्ये पॅकेजेसचे नाव बदलण्याची परवानगी देते.
  9. मी अवलंबित्वांमध्ये डुप्लिकेट वर्ग कसे हाताळू?
  10. कॉन्फिगर करा maven-shade-plugin अंतिम JAR मध्ये डुप्लिकेट कसे हाताळले जावेत हे निर्दिष्ट करून डुप्लिकेट वर्ग आणि संसाधने व्यवस्थापित करण्यासाठी.
  11. मी अवलंबित्वातून फक्त विशिष्ट फायली समाविष्ट करू शकतो?
  12. होय, तुम्ही कॉन्फिगर करू शकता maven-assembly-plugin किंवा maven-shade-plugin अवलंबित्वातून फक्त विशिष्ट फाइल्स समाविष्ट करण्यासाठी.
  13. मी पॅकेज केलेले JAR कसे चालवू?
  14. वापरा २४ तुमच्या JAR फाइलचा मार्ग त्यानंतर कमांड.
  15. मी माझ्या JAR फाईलमधील मजकुराची पडताळणी कशी करू शकतो?
  16. आपण वापरू शकता २५ JAR फाईलमधील सामग्री सूचीबद्ध करण्यासाठी आदेश.
  17. माझी JAR फाईल खूप मोठी असल्यास काय?
  18. वापरा maven-shade-plugin अनावश्यक फाइल्स वगळण्यासाठी आणि JAR आकार कमी करण्यासाठी.

मावेन एक्झिक्युटेबल JAR वर विचार समारोप

मावेन वापरून अवलंबनांसह एक एक्झिक्यूटेबल JAR तयार करणे Java अनुप्रयोगांसाठी उपयोजन प्रक्रिया सुलभ करते. योग्यरित्या कॉन्फिगर करून pom.xml फाईल आणि मावेन असेंब्ली प्लगइन किंवा मॅवेन शेड प्लगइन सारख्या प्लगइनचा वापर करून, विकासक सर्व आवश्यक अवलंबनांना एकाच JAR फाइलमध्ये पॅकेज करू शकतात. हा दृष्टीकोन सुनिश्चित करतो की अनुप्रयोग विविध वातावरणात अखंडपणे चालू शकतो, वितरण आणि अंमलबजावणी सरळ करतो. या चरणांचे अनुसरण केल्याने तुम्हाला तुमच्या प्रकल्पाची अवलंबित्व प्रभावीपणे व्यवस्थापित करण्यात आणि विश्वसनीय, एक्झिक्युटेबल JAR फाइल्स तयार करण्यात मदत होईल.