القائمة الرئيسية

الصفحات

6- هيكلة وملفات مشروع Spring boot3

سنتعرف في هذا الدرس على تركيبة وهيكلة ملفات مشروع Spring boot3 :


وسوف نشرح الان جميع الملفات والمجلدات:

📁 .idea

  • الوصف: مجلد خاص بـ IntelliJ IDEA يحتوي على إعدادات المشروع مثل التكوينات، الأكواد المحفوظة، وغيرها.

  • ملاحظة: لا داعي لإضافته إلى Git غالباً، لذلك يتم تجاهله في .gitignore.

📁 .mvn

  • الوصف: يحتوي على ملفات دعم لتشغيل Maven Wrapper (mvnw و mvnw.cmd).

  • الوظيفة: يمكِّنك من تشغيل أو بناء المشروع بدون الحاجة لتثبيت Maven على النظام.

📁 src

المجلد الرئيسي للكود المصدر، ويحتوي على ثلاثة أقسام رئيسية:

📁 main/java

  • الوصف: يحتوي على الكود الأساسي لتطبيق Spring Boot.

  • الوظيفة: تضع فيه جميع الحزم (Packages) والملفات (مثل: Controllers, Services, Repositories, etc).

📁 main/resources

  • الوصف: يحتوي على الموارد (Resources) غير البرمجية.

  • الوظيفة: ملفات مثل:

    • application.properties أو application.yml (إعدادات المشروع)

    • قوالب Thymeleaf أو ملفات HTML

    • ملفات JSON، XML، صور، إلخ.

📁 test

  • الوصف: يحتوي على اختبارات الوحدة (Unit Tests) أو اختبارات التكامل (Integration Tests).

  • الوظيفة: تنفذ الكود لاختبار صحة الأداء باستخدام JUnit أو TestNG.

📁 target

  • الوصف: مجلد يتم إنشاؤه تلقائيًا عند بناء المشروع.

  • الوظيفة: يحتوي على ملفات الـ .class المترجمة، وملف الـ .jar النهائي، ونتائج الاختبار.

📄 .gitattributes

  • الوصف: إعدادات خاصة بـ Git لتحديد سمات الملفات، مثل الترميز أو معالجة نهاية الأسطر.

📄 .gitignore

  • الوصف: يحدد الملفات والمجلدات التي يجب تجاهلها في Git (مثل target/, .idea/, إلخ).

📄 HELP.md

  • الوصف: ملف توثيق اختياري يتم إنشاؤه غالباً تلقائياً عند إنشاء المشروع عبر Spring Initializr.

  • الوظيفة: يحتوي على روابط مفيدة وتوجيهات لتطوير المشروع.

📄 mvnw و mvnw.cmd

  • الوصف: أدوات Maven Wrapper لتشغيل Maven محلياً دون تثبيته.

  • الوظيفة:

    • mvnw = لنظام Linux/macOS

    • mvnw.cmd = لنظام Windows


📄 pom.xml

  • الوصف: أهم ملف في مشروع Maven.

  • الوظيفة: يحدد إعدادات المشروع مثل:

    • الإعتمادات (dependencies)

    • إصدار Java

    • الإضافات (plugins)

    • اسم المشروع والمجموعة (groupId, artifactId)

تعليقات