ההבדלים בין אריזות JAR ו- WAR

1. סקירה כללית

במדריך המהיר הזה, אנו נתמקד בהבדלים בין אריזות JAR ו- WAR בג'אווה.

ראשית נגדיר כל אפשרות אריזה בנפרד. לאחר מכן נסכם את ההבדלים ביניהם.

2. אריזות ג'אר

במילים פשוטות, JAR - או Java Archive - הוא פורמט קובץ חבילה. לקבצי JAR יש את .קַנקַן סיומת ועשוי להכיל ספריות, משאבים וקבצי מטא נתונים.

בעיקרו של דבר, זהו קובץ מכווץ המכיל את הגרסאות הדחוסות של .מעמד קבצים ומשאבים של ספריות ויישומי Java מקובצים.

לדוגמה, הנה מבנה פשוט של קובץ JAR:

META-INF / MANIFEST.MF com / baeldung / MyApplication.class 

ה META-INF / MANIFEST.MF הקובץ עשוי להכיל מטא-נתונים נוספים אודות הקבצים המאוחסנים בארכיון.

אנו יכולים ליצור קובץ JAR באמצעות ה- קַנקַן פקודה או עם כלים כמו Maven.

3. אריזות מלחמה

WAR מייצג ארכיון יישומי אינטרנט או משאבים ליישומי אינטרנט. לקבצי ארכיון אלה יש את .מִלחָמָה הרחבה והם משמש לאריזת יישומי אינטרנט שנוכל לפרוס על כל מיכל Servlet / JSP.

הנה פריסת דוגמה של מבנה קבצים טיפוסי של WAR:

META-INF / MANIFEST.MF WEB-INF / web.xml jsp / helloWorld.jsp שיעורים / static / templates / application.properties lib / // * .jar קבצים כמו libs

בפנים יש לו META-INF הספריה המחזיקה מידע שימושי ב MANIFEST.MF אודות ארכיון האינטרנט. ה META-INF הספרייה היא פרטית ולא ניתן לגשת אליה מבחוץ.

מצד שני, הוא מכיל גם את WEB-INF מדריך ציבורי עם כל משאבי האינטרנט הסטטיים, כולל עמודי HTML, תמונות וקבצי JS. יתר על כן, הוא מכיל את web.xml קבצים, שיעורי סרוולט וספריות.

אנו יכולים להשתמש באותם כלים ופקודות שבהם השתמשנו לבניית JAR לבניית .מִלחָמָה ארכיון.

4. הבדלים עיקריים

אז מה ההבדלים העיקריים בין שני סוגי הארכיון האלה?

ההבדל הראשון והברור ביותר הוא סיומת קובץ. לצנצנות יש את .קַנקַן סיומת, ואילו לקובץ WAR יש את .מִלחָמָה סיומת.

ההבדל העיקרי השני הוא מטרתם ואופן תפקודם. קבצי JAR מאפשרים לנו לארוז קבצים מרובים על מנת להשתמש בהם כספרייה, תוסף או כל סוג של יישום. מצד שני, קבצי WAR משמשים רק ליישומי אינטרנט.

גם מבנה הארכיונים שונה. אנו יכולים ליצור JAR עם כל מבנה רצוי. לעומת זאת, ל- WAR יש מבנה מוגדר מראש עם WEB-INF ו META-INF ספריות.

לבסוף, אנחנו יכולים הפעל JAR משורת הפקודה אם נבנה אותו כ- JAR להפעלה ללא שימוש בתוכנות נוספות. לחלופין, נוכל להשתמש בו כספרייה. לעומת זאת, אנחנו צריך שרת כדי לבצע WAR.

5. מסקנה

במאמר מהיר זה השווינו את .קַנקַן ו .מִלחָמָה סוגי אריזות Java. בכך ציינו גם שלמרות ששניהם משתמשים באותו פורמט קובץ ZIP, ישנם כמה הבדלים חשובים.