25/08/2026
لو أنت Java Developer ولسه بتستخدم Maven كده:
mvn clean install
من غير ما تكون فاهم إيه اللي بيحصل فى الباك جراوند… البوست ده ليك 👇
Maven مش مجرد Build Tool، هو مسؤول عن:
Build Automation
Dependency Management
Project Structure
Plugin Management
Packaging & Deployment
وكل حاجة تقريبًا بتبدأ من:
pom.xml
أهم الحاجات اللي لازم تفهمها في Maven 👇
1️⃣ GAV
أي Artifact بيتعرف باستخدام:
groupId
artifactId
version
2️⃣ Maven Lifecycle
أشهر Phases:
validate → compile → test → package → verify → install → deploy
ولما تعمل:
mvn package
Maven بيشغل كل الـPhases اللي قبله تلقائيًا، مش package بس.
3️⃣ Plugins & Goals
الـLifecycle بيحدد المراحل، لكن الـPlugins هي اللي بتنّفذ الشغل.
زي:
maven-compiler-plugin
maven-surefire-plugin
maven-jar-plugin
maven-install-plugin
maven-deploy-plugin
4️⃣ Dependency Management
لازم تفهم:
- Transitive Dependensies : بيتم إضافتها تلقائيًا لأن - Dependency تانية في المشروع محتاجاها.
- Dependency Conflicts: لما أكتر من Dependency تطلب Versions مختلفة من نفس الـLibrary.
- Exclusions: استبعاد Dependency معينة بتتسحب تلقائيًا من خلال Dependency تانية.
- Dependency Tree: عرض شجرة الـDependencies لمعرفة كل Dependency مين أضافها وإيه الـDependencies اللي بتعتمد عليها و دى مهمه جدا خصوصًا في مشاريع الـMulti-Module.
5️⃣ Dependency Scopes
زي:
compile – provided – runtime – test
كل Scope بيحدد الـDependency هتكون متاحة فين وإمتى.
6️⃣ Profiles
مفيدة لما يكون عندك Configuration مختلفة بين اكتر من environment زى:
dev – test – prod
7️⃣ Snapshot vs Release
1.0.0-SNAPSHOT → تحت التطوير
1.0.0 → Release مستقرة
الخلاصة 🎯
Maven مش Commands بتحفظها.
لو فهمت:
pom.xml + GAV + Lifecycle + Plugins + Dependencies + dependencyManagement + Profiles + Scopes
هتقدر تفهم وتحل مشاكل الـBuild بدل الحل التقليدي:
mvn clean install