1. ما هو Maven
Maven هي أداة إنشاء مشروع تم تطويرها في Java. يمكنه أتمتة التجميع والاختبار والنشر والوثائق أثناء عملية بناء المشروع ، مما يقلل بشكل كبير من عبء النشر للمبرمجين.
2. تثبيت Maven
تثبيت Maven بسيط للغاية. تفضل بزيارة صفحة Maven الرسمية للتنزيل: http://maven.apache.org/download.cgi
بعد التنزيل ، قم بتكوين متغير بيئة M2_Home ، ثم قم بتشغيل MVN -في المحطة. عندما ترى موجه الإخراج الصحيح ، يتم تثبيت Maven.
3. المفاهيم الأساسية لمافن
الفكرة الأساسية لـ Maven هي POM ، أي نموذج كائن المشروع. تصف ملفات POM الموارد (رمز المصدر ، التبعيات ، الاختبارات ، إلخ) المستخدمة من قبل مشروع Maven في شكل ملف XML. يصف الشكل التالي بنية ملف POM وكيف يستدعي Maven ملف POM.
عند تنفيذ أمر Maven ، سيتم تمرير ملف POM ، وسيتم تنفيذ Maven على المورد الموضح في POM
ملف POM:
<project xmlns = "http://maven.apache.org/pom/4.0.0" http://maven.apache.org/xsd/maven-4.0.0.xsd "> <Dodeversion> 4.0.0 </modelversion> <!-الأساسيات-> <groupid> ... </groupId> <StifactId> ... <RependencyManagement> ... </dependencymanagement> <الوحدات> ... </modules> <properties> ... </properties> <!-إعدادات الإنشاء-> <build> ... </build> <rediting> ... </reporting> <!-المزيد من معلومات المشروع-> <same> ... <تراخيص> ... </تراخيص> <ugraction> ... </منظمة> <المطورين> ... </developers> <المساهمين> ... </sophors> <!-إعدادات البيئة-> <sisuemanagement> ... </issuemanagement> </cimanagement> ... </cimanagement> <mailinglists <Spereveriales> ... </prereperies> ... </repositories> <spositories> ... </repositories> <pluginRepositories> ... </pluginrepositories> <istrightManagement> ... </distributingmanagement> <firfiels> ... </plansfiles> </project> <project>
النموذج هو إصدار نموذج POM ، 4.0.0 يدعم Maven2 و 3
إحداثيات Maven (إحداثيات Maven)
(1) GroupID: إنه معرف فريد من المؤسسة أو المشروع. في معظم الحالات ، سيستخدم الاسم الجذر لحزمة Java للمشروع باعتباره GroupID ، مثل com.pastqing
(2) Artifactid: إنه اسم المشروع الذي يتم بناؤه ، على سبيل المثال ، قطعة أثرية نظام الدفع هي مدفوعة على شبكة الإنترنت. Artifactid هو اسم الدليل الفرعي تحت دليل المجموعة في مستودع Maven
(3) الإصدار: كما يعني الاسم رقم إصدار إصدار المشروع
العناصر الثلاثة أعلاه هي جزء من اسم نتيجة البناء. بعد بناء المشروع ، سيتم إنشاء حزمة جرة. المسار الموجود في مستودع Maven هو maven_repo/com/pastqing/web-pay/1.0/web-pay-1.0.jar
4. مشروع Hello World Java تم تصميمه مع Maven
قم ببناء مشروع باستخدام نموذج Maven المكون الإضافي:
افتح دليل العمل في المحطة وقم بتشغيل الأمر:
MVN النموذج الأصلي: توليد
، المرة الأولى التي تعمل فيها أبطأ لأن المرة الأولى التي تحتاج فيها إلى تنزيل النموذج الأولي للمشروع ذي الصلة من مستودع Maven Central. بعد التنزيل ، سيتم اختيار نموذج المشروع ، وسيتم إدخال مجموعة Artifactid ، الإصدار ، إلخ. سيكون هناك موجه النجاح بعد الانتهاء من البناء.
تغليف المشروع: قم بالتبديل إلى دليل جذر المشروع وقم بتشغيل حزمة MVN. بعد نجاح الحزمة ، سيقوم المشروع بإنشاء مجلد مستهدف مع ملفات JAR وملفات الفصول التي تم إنشاؤها.
قم بتشغيل ملف الجرة:
Java -CP Target/HelloWorld-1.0-snapshot.jar com.pastqing.app
في هذه المرحلة ، تم الانتهاء من أبسط مشروع Java الذي صممه Maven.
5. مشروع Java-Web مبني مع Maven
يشبه إنشاء مشروع ويب بشكل أساسي إنشاء مشروع Java ، لكن النموذج المستخدم مختلف. لن أشرح ذلك هنا. دعنا نتحدث عن كيفية استخدام Tomcat أو Jetty Plug-In لتشغيل مشروع ويب. هنا نأخذ Tomcat كمثال.
تثبيت مكون مافن تومكات: http://tomcat.apache.org/maven-plugin-2.2/
نضيف معلومات المكونات الإضافية التالية إلى ملف POM في مشروع الويب
<rector> <rougiD> org.apache.tomcat.maven </rougiD> <artifactid> tomcat6-maven-plugin </suntifactid> <sophy> 2.2 </splice> </tulcin> <sultin> <nugled> org.apache.tomcat.maven </rogleid> <splection> 2.2 </version> </sultwin>
وبهذه الطريقة ، نقوم بدمج مكون Maven المكون من Tomcat ، ونحن بحاجة فقط إلى أمر واحد لنشر الخدمة وبدءها. الأمر كما يلي:
MVN Tomcat: Run
(Tomcat6)
MVN TOMCAT7: RUN
(Tomcat7)
النشر التلقائي إلى Tomcat الخارجي باستخدام البرنامج المساعد Tomcat Maven
سوف يستخدم النشر التلقائي أعلاه Tomcat مضمنًا في Maven. بعد ذلك ، نقوم بتعديل ملف POM للسماح بنشر المشروع في TOMCAT الخارجي.
قم بتعديل ملف POM POM وإضافة معلومات تكوين الخادم
<reclosin> <rougiD> org.apache.tomcat.maven </rougiD> <StifactId> tomcat7-maven-plugin </shintifactid> <sopher> 2.2 </splire> <configuration> <url> http: // localhost: 8080/manager/text </url> <Prosport> admin </suredpoord> </isplicuration> </splessin>
تتوافق قيم الخادم واسم المستخدم وكلمة المرور واحدة تلو الأخرى مع الخادم واسم المستخدم وكلمة المرور في Setting.xml في ٪ maven_home.
ابدأ tomcat الخارجي وقم بتشغيل الأمر mvn tomcat7: redeploy
6. كيفية بناء مشروع متعدد الوحدات مع Maven
1. الوالدين بوم
جميع ملفات Maven POM ورثت من POM الوالد. إذا لم يتم تحديد POM الوالد ، يتم توريث ملف POM من الجذر POM. يتم عرض علاقة تكامل ملفات POM في الشكل أدناه:
يمكنك جعل ملف POM واحد يرث بشكل صريح ملف POM آخر. وبهذه الطريقة ، يمكن تعديل إعدادات جميع ملفات POM للأطفال عن طريق تعديل إعدادات ملف POM الأصل العام. هنا نستخدم علامة الأصل لتحديد POM الأصل. دعونا نبني مشروع Mavne متعدد الوحدات
2. بناء هيكل دليل المشروع
نقوم بإنشاء مشروع Maven-Web يسمى EducationCloud. بعد ذلك ، نقوم بإنشاء العديد من المجلدات في دليل المشروع لتقسيم وحداتنا. إنهم يتولىون من التعليم (الوحدة الوالدية) ، وتربية النواة (الأعمال) ، والتعليم-إقرار (الكيان) ، والتعليم web (خدمة الويب)
يمكن تقسيم قسم الدليل وفقًا للاحتياجات ، على النحو الوارد أعلاه
3. تعديل ملف POM
نستخدم علامات الوحدة النمطية لتقسيم الوحدات النمطية. افتح ملف POM في دليل الجذر وأضف علامة Moudle.
<؟ XSI: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <dorevactid> 4.0.0 </modelverversion> <soph> 1.0-snapshot </version> <cplaging> pom </packaging> <modules> <module> upply-parent </module> <module> education-core </module> <module> etucation-entity </module> <module> upplic
هنا نتحدث عن علامة التغليف: الأكثر شيوعًا هو حزمها كجرة ، حرب. يحتاج أي مشروع Maven إلى تحديد العنصر المعبأ في ملف POM. إذا لم يتم الإعلان عن العنصر ، يتم تعبئته كجرة افتراضيًا. إذا كانت قيمة التعريف هي الحرب ، فسيتم تعبئتها كحزمة حرب. إذا كانت القيمة POM ، فلن يتم إنشاء حزمة (عادة ما تستخدم في الوحدة الأصل).
أضف علامات الأصل إلى كل وحدة:
تُستخدم العلامة الأصل لتحديد موضع الإحداثيات في POM الأصل ، ويتم تعريفه على النحو التالي:
<Arnal> <roupiD> com.educationCloud </rougiD> <StifactId> expresscloud-parent </artifactid> <soph> 1.0-snapshot </version> <siredPath> </ispiletpath> </parent>
GroupID ، Aritfactid ، الإصدار هي عناصر تمثل معلومات موقع POM الأصل. REPORATIONPATH هو المسار النسبي الذي يمثل موقع POM الأصل. الافتراضي هو ../pom.xml. تجدر الإشارة هنا إلى أن GroupId ، aritfactid ، يجب أن يتوافق الإصدار مع ملف POM الأصل.
استخدم الإدارة لإدارة جميع التبعيات في المشروع. من أجل إدارة التبعيات بشكل موحد ، نستخدم إدارة التبعية في ملف POM لوحدة المشروع الأصل لإعلان جميع التبعيات في المشروع. وبهذه الطريقة ، عند الإشارة إلى التبعيات في المشاريع الفرعية الأخرى ، يمكن حذف رقم الإصدار ، ومن السهل أيضًا تعديله.
اكتب ملف POM الخاص بوحدة المشروع الأصل ** EducationCloud-Parent ، أضفه على النحو التالي:
استخدم البرنامج المساعد لإدارة البرنامج المساعد Maven في المشروع. من أجل إدارة المكون الإضافي Maven بشكل موحد في المشروع ، مثل المكون الإضافي لتجميع Maven ، والمكون الإضافي للتغليف ، وما إلى ذلك ومعلومات التكوين الخاصة به ، إضافة المكون الإضافي إلى ملف POM Project Project للإدارة. وبهذه الطريقة ، ستتم معالجة المكونات الإضافية المشار إليها في جميع العلامات الفرعية بشكل موحد ، ويتم إضافة ما يلي:
<rectormanagement> <plugins> <!-تكوين المكون الإضافي-> <clupin> <rouciD> org.apache.maven.plugins </groupId> <StifactId> maven-complier-plugin </shoding> </eng> </ispification> <clupin> </sugionins> </pluginmanagement>
أضفنا أعلاه تكوين المكون الإضافي لتجميع Maven ، تم تجميعه باستخدام JDK1.7. بعد الادخار ، يمكننا أن نرى التعديلات المقابلة في POM الفعالة لكل وحدة فرعية.
استخدم علامات الخصائص لتحديد الثوابت:
نحدد أرقام الإصدار لكل اعتماد على أنها ثوابت مختلفة ، بحيث تكون مريحة للتعديلات المستقبلية:
<Properties> <JdKversion> 1.7 </jdkversion> <SrevleTversion> 3.1.0 </servletversion> <Mysqlversion> 5.1.34 </mysqlversion> <nunitversion> 4.12 </unitversion> <mefaultencoding> utf-8 </sowerencoding> </surediperies>
عند الإشارة ، ما عليك سوى استخدام شكل $ {jdkversion}.
لاحظ أنه يمكن تشغيل جميع العمليات المذكورة أعلاه في IDE ، مما يجعلها أكثر ملاءمة وبساطة.