Maven کا استعمال کرتے ہوئے انحصار کے ساتھ ایک قابل عمل JAR بنانا

Maven

ماون پروجیکٹس کو سنگل ایگزیکیوٹیبل جار میں پیک کرنا

جاوا پروجیکٹس کے ساتھ کام کرتے وقت، آسانی سے تقسیم کے لیے اپنی ایپلیکیشن کو ایک قابل عمل JAR فائل میں پیک کرنا اکثر ضروری ہوتا ہے۔ Maven، ایک طاقتور آٹومیشن ٹول، ڈویلپرز کو اس واحد آؤٹ پٹ JAR کے اندر تمام ضروری انحصار شامل کرنے کی اجازت دیتا ہے۔

یہ مضمون آپ کے ماون پروجیکٹ کو کنفیگر کرنے کے لیے درکار اقدامات کے بارے میں رہنمائی کرے گا تاکہ تمام انحصار JARs کو آپ کے حتمی قابل عمل JAR میں شامل کیا جا سکے۔ ان ہدایات پر عمل کرکے، آپ تعیناتی کے عمل کو آسان بنائیں گے اور اس بات کو یقینی بنائیں گے کہ آپ کی درخواست مختلف ماحول میں آسانی سے چلتی ہے۔

کمانڈ تفصیل
<plugin> تعمیراتی عمل کے دوران استعمال کرنے کے لیے ماون پلگ ان کی وضاحت کرتا ہے۔ پلگ ان مخصوص کاموں کو انجام دے سکتے ہیں جیسے کوڈ کو مرتب کرنا یا پروجیکٹ کو پیک کرنا۔
<groupId> Maven پروجیکٹ کے لیے گروپ شناخت کنندہ کی وضاحت کرتا ہے، عام طور پر ایک الٹا ڈومین نام۔
<artifactId> آرٹفیکٹ کے شناخت کنندہ کی وضاحت کرتا ہے، جو پروجیکٹ کا نام ہے۔
<version> پروجیکٹ کے موجودہ ورژن کی نشاندہی کرتا ہے۔
<build> پلگ انز اور وسائل سمیت پروجیکٹ کے لیے تعمیراتی ترتیب پر مشتمل ہے۔
<descriptorRef> استعمال کرنے کے لیے ماون اسمبلی پلگ ان کے لیے پہلے سے طے شدہ ڈسکرپٹر کا حوالہ دیتا ہے، جیسے "جار کے ساتھ-انحصار"۔
<mainClass> JAR فائل کے چلنے پر عمل درآمد کی جانے والی مرکزی کلاس کی وضاحت کرتا ہے۔
<execution> ایک پلگ ان کے اندر ایک ایگزیکیوشن بلاک کی وضاحت کرتا ہے، مختلف تعمیراتی مراحل میں انجام دینے والے کاموں کی وضاحت کرتا ہے۔
mvn clean package پروجیکٹ کو صاف کرنے اور اسے JAR فائل میں پیک کرنے کا حکم دیں، بشمول تمام انحصار۔
java -jar target/...jar تیار کردہ JAR فائل کو چلانے کے لیے کمانڈ، JAR کا راستہ بتاتے ہوئے۔

Maven کے ساتھ ایک قابل عمل JAR بنانا اور چلانا

اوپر فراہم کردہ اسکرپٹس یہ ظاہر کرتی ہیں کہ ماون پروجیکٹ کو اس کے تمام انحصار کو ایک واحد قابل عمل JAR فائل میں پیک کرنے کے لیے کس طرح ترتیب دیا جائے۔ پہلا اسکرپٹ ایک ماون ہے۔ فائل، جس میں پروجیکٹ کی ترتیب شامل ہے۔ اس فائل کے اندر، the ٹیگ کا استعمال ماون اسمبلی پلگ ان کی وضاحت کے لیے کیا جاتا ہے۔ یہ پلگ ان ایک قابل عمل JAR بنانے کے لیے اہم ہے جس میں تمام انحصار شامل ہیں۔ دی پلگ ان کنفیگریشن کے اندر ٹیگ کے استعمال کی وضاحت کرتا ہے۔ jar-with-dependencies ڈسکرپٹر، جو اس بات کو یقینی بناتا ہے کہ پروجیکٹ کے تمام انحصار کو حتمی JAR فائل میں پیک کیا گیا ہے۔ دی کے اندر ٹیگ لگائیں۔ سیکشن ضروری ہے کیونکہ یہ ماون کو بتاتا ہے کہ جب JAR کو عمل میں لایا جاتا ہے تو کون سی کلاس میں چلانے کا بنیادی طریقہ ہوتا ہے۔

دی پلگ ان کنفیگریشن کے اندر بلاک وہ جگہ ہے جہاں کارروائی ہوتی ہے۔ یہ بتاتا ہے کہ پلگ ان کا مقصد کے دوران پھانسی دی جانی چاہئے۔ تعمیراتی زندگی کا مرحلہ۔ یہ وہی ہے جو انحصار کے ساتھ JAR فائل کی تخلیق کو متحرک کرتا ہے۔ دوسرا اسکرپٹ ایک سادہ کمانڈ لائن ہدایات ہے: mvn clean package. یہ کمانڈ پروجیکٹ کو صاف کرتا ہے (پچھلے تعمیراتی نمونوں کو ہٹاتا ہے)، سورس کوڈ کو مرتب کرتا ہے، ٹیسٹ چلاتا ہے، اور پروجیکٹ کو JAR فائل میں پیک کرتا ہے۔ حتمی JAR فائل میں واقع ہوگی۔ پروجیکٹ کی ڈائرکٹری اور نام کے مطابق اور میں بیان کیا گیا ہے۔ 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 کمانڈ چلانا

کمانڈ لائن ہدایات

mvn clean package
# This command will compile the code, run the tests, and create the JAR file
# The JAR file will include all dependencies specified in the pom.xml
# It will be located in the target directory of the project
# The final JAR file will be named my-app-1.0-SNAPSHOT-jar-with-dependencies.jar

# To run the JAR file, use the following command:
java -jar target/my-app-1.0-SNAPSHOT-jar-with-dependencies.jar
# Ensure that the mainClass specified in the pom.xml is correct
# This will start your application with all dependencies included

پیکیجنگ انحصار کے لیے جدید ماون تکنیک

Maven کے ساتھ ایک قابل عمل JAR بنانے کے لیے بنیادی ترتیب سے ہٹ کر، اضافی تکنیکیں ہیں جو آپ کی تعمیر کے عمل کو بڑھا سکتی ہیں۔ ایسی ہی ایک تکنیک میں استعمال کرنا شامل ہے۔ کے بجائے پلگ ان رابطہ بحال کرو۔ Maven شیڈ پلگ ان uber-JARs بنانے کے لیے مزید جدید خصوصیات پیش کرتا ہے (انحصار کے ساتھ JARs شامل ہیں)۔ یہ آپ کو کلاس پاتھ کے تنازعات سے بچنے کے لیے پیکجوں کا نام تبدیل کرنے کی اجازت دیتا ہے اور ڈپلیکیٹ کلاسز اور وسائل کے لیے بہتر ہینڈلنگ فراہم کرتا ہے۔ مزید برآں، یہ عمدہ کنٹرول پیش کرتا ہے جس پر انحصار حتمی JAR میں شامل ہے۔

ایک اور اہم پہلو آپ کی JAR فائل کے سائز کا انتظام کرنا ہے۔ بڑی JAR فائلیں بوجھل اور منتقلی یا لوڈ کرنے میں سست ہو سکتی ہیں۔ دی آپ کو غیر ضروری فائلوں اور کلاسوں کو خارج کرنے کی اجازت دے کر اس میں مدد کر سکتا ہے، اس طرح حتمی JAR کا سائز کم ہو جاتا ہے۔ آپ غیر ضروری معلومات جیسے کہ غیر استعمال شدہ کلاسز یا بے کار وسائل کو ہٹا کر JAR کو کم سے کم کرنے کے لیے پلگ ان کو بھی ترتیب دے سکتے ہیں۔ یہ جدید کنفیگریشنز خاص طور پر اس وقت کارآمد ثابت ہو سکتی ہیں جب متعدد انحصار کے ساتھ بڑے منصوبوں پر کام کر رہے ہوں۔

  1. میں اپنے JAR میں مرکزی کلاس کی وضاحت کیسے کروں؟
  2. آپ استعمال کرکے مین کلاس کی وضاحت کرسکتے ہیں۔ کے اندر ٹیگ کریں Maven پلگ ان کنفیگریشن کا سیکشن۔
  3. میں حتمی JAR سے مخصوص انحصار کو کیسے خارج کر سکتا ہوں؟
  4. کا استعمال کرتے ہیں ان انحصارات کی وضاحت کرنے کے لیے پلگ ان کنفیگریشن کے اندر ٹیگ کریں جنہیں حتمی JAR میں شامل نہیں کیا جانا چاہیے۔
  5. ایک uber-JAR کیا ہے؟
  6. ایک uber-JAR ایک JAR فائل ہے جس میں نہ صرف آپ کا مرتب کردہ کوڈ ہوتا ہے بلکہ اس کے تمام انحصار بھی ہوتے ہیں۔
  7. میں اپنے JAR میں کلاس پاتھ کے تنازعات سے کیسے بچ سکتا ہوں؟
  8. دی تنازعات سے بچنے کے لیے آپ کو انحصار کے اندر پیکیجز کا نام تبدیل کرنے کی اجازت دیتا ہے۔
  9. میں انحصار میں ڈپلیکیٹ کلاسوں کو کیسے ہینڈل کروں؟
  10. کو ترتیب دیں۔ ڈپلیکیٹ کلاسز اور وسائل کا نظم کرنے کے لیے یہ بتاتے ہوئے کہ ڈپلیکیٹ کو حتمی JAR میں کیسے ہینڈل کیا جانا چاہیے۔
  11. کیا میں انحصار سے صرف مخصوص فائلیں شامل کرسکتا ہوں؟
  12. جی ہاں، آپ ترتیب دے سکتے ہیں۔ یا انحصار سے صرف مخصوص فائلوں کو شامل کرنا۔
  13. میں پیکڈ JAR کو کیسے چلا سکتا ہوں؟
  14. کا استعمال کرتے ہیں آپ کی JAR فائل کے راستے کے بعد کمانڈ۔
  15. میں اپنی JAR فائل کے مواد کی تصدیق کیسے کر سکتا ہوں؟
  16. آپ استعمال کر سکتے ہیں۔ JAR فائل کے مندرجات کی فہرست کے لیے کمانڈ۔
  17. اگر میری JAR فائل بہت بڑی ہے تو کیا ہوگا؟
  18. کا استعمال کرتے ہیں غیر ضروری فائلوں کو خارج کرنے اور JAR سائز کو کم سے کم کرنے کے لیے۔

ماون ایگزیکیوٹیبل JARs پر اختتامی خیالات

ماون کا استعمال کرتے ہوئے انحصار کے ساتھ ایک قابل عمل JAR بنانا جاوا ایپلیکیشنز کے لیے تعیناتی کے عمل کو آسان بناتا ہے۔ کو صحیح طریقے سے ترتیب دے کر فائل اور ماون اسمبلی پلگ ان یا ماون شیڈ پلگ ان جیسے پلگ ان کا استعمال کرتے ہوئے، ڈویلپر تمام ضروری انحصار کو ایک ہی JAR فائل میں پیک کر سکتے ہیں۔ یہ نقطہ نظر اس بات کو یقینی بناتا ہے کہ ایپلی کیشن مختلف ماحول میں بغیر کسی رکاوٹ کے چل سکتی ہے، جس سے تقسیم اور عملدرآمد کو سیدھا بنایا جا سکتا ہے۔ ان اقدامات پر عمل کرنے سے آپ کو اپنے پروجیکٹ کے انحصار کو مؤثر طریقے سے منظم کرنے اور قابل اعتماد، قابل عمل JAR فائلیں بنانے میں مدد ملے گی۔