مقدمة إلى Maven من قبل Balaji Varnasi و Sudha Belida (ترجمة)

من مترجم: قبل بضع سنوات ، حددت هدفًا سريعًا ، ولكن التعرف على إطار عمل شائع مثل Apache Maven . على الفور تقريبًا ، تمكنت من العثور على الأدب المناسب ، لكنني فوجئت قليلاً بحقيقة أن جميع المواد المعقدة كانت حصرية باللغة الإنجليزية ، بينما في روسيا كان هناك الكثير من المقالات المتناثرة ، ولكن لم أتمكن من العثور على كتاب كامل يمكن قراءته من الغلاف إلى الغلاف نجح. ونتيجة لذلك ، اخترت للقراءة كتابًا صغيرًا ، بعنوان تقديم مافن ، كتبه Balaji Varnasi و Sudha Belida ونشرته Apress في 2014. عندما تم حل جميع المهام ، ولدت تدريجياً ترجمة لهذا المنشور ، والتي ، على الرغم من أنها كانت ملقاة على مكتبي لبضع سنوات ، قد لا تزال مفيدة للمجتمع.

أعطي هنا ترجمة لفصل واحد فقط من فصول هذا الكتاب ، ولكن يمكن تنزيله بالكامل هنا من هذه الروابط باللغة الإنجليزية أو باللغة الروسية (PDF).

الفصل 6: نماذج مخضرمة


حتى هذه اللحظة ، قمت بإنشاء مشروع Maven يدويًا ، وإنشاء مجلدات وملفات pom.xml من البداية. يمكن أن يكون هذا مملاً ، خاصة إذا كان عليك في كثير من الأحيان إنشاء مشاريع. لحل هذه المشكلة ، يوفر Maven النماذج الأولية. تعد النماذج الأصلية لـ Maven مشروعات محددة مسبقًا تتيح للمستخدمين إنشاء مشروعات جديدة بسهولة.

توفر النماذج النموذجية لـ Maven أيضًا قاعدة ملائمة لتبادل الخبرات وضمان اتساق بنية دليل Maven القياسية. على سبيل المثال ، يمكن للمؤسسة إنشاء نموذج أصلي مع ورقة أنماط متتالية ( CSS ) للمكتبات ومكتبات JavaScript المعتمدة ومكونات قابلة لإعادة الاستخدام. سيتبع المطورون الذين يستخدمون هذه النماذج لإنشاء مشاريع تلقائيًا معايير الشركة.

نماذج مدمجة


من خارج منطقة الجزاء ، يوفر Maven للمطورين مئات من النماذج الأصلية. بالإضافة إلى ذلك ، هناك العديد من المشاريع مفتوحة المصدر التي توفر نماذج أصلية إضافية يمكنك تنزيلها واستخدامها. يوفر Maven أيضًا نماذج أصلية للمكونات الإضافية مع أهداف لإنشاء نماذج أصلية وإنشاء مشاريع من نماذج أصلية.

يحتوي المكون الإضافي النموذج الأصلي على هدف إنشاء يتيح لك عرض النموذج الأصلي المطلوب وتحديده. تعرض القائمة 6-1 نتائج تشغيل هدف التوليد من سطر الأوامر. كما ترى ، تم إعطاء 491 نموذجًا أصليًا للاختيار من بينها (في عام 2018 كان هناك بالفعل أكثر من ألفي - ترجمة تقريبًا) . تمت مناقشة استخدام العديد منها في هذا الفصل.

الإدراج 6-1. البرنامج المساعد مخضرم النموذج الأصلي يولد دعوة الهدف

$mvn archetype:generate [INFO] Scanning for projects... [INFO] [INFO] ----------------------------------------------------------------------- [INFO] Building Maven Stub Project (No POM) 1 [INFO] ----------------------------------------------------------------------- [INFO] [INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) @ standalone- pom >>> [INFO] [INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) @ standalone- pom <<< [INFO] [INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone- pom [INFO] Generating project in Interactive mode [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) ........................... ........................... 1176: remote -> ru.yandex.qatools.camelot:camelot-plugin (-) 1177: remote -> se.vgregion.javg.maven.archetypes:javg-minimal-archetype (-) 1178: remote -> sk.seges.sesam:sesam-annotation-archetype (-) 1179: remote -> tk.skuro:clojure-maven-archetype (A simple Maven archetype for Clojure) 1180: remote -> tr.com .lucidcode:kite-archetype (A Maven Archetype that allows users to create a Fresh Kite project) 1181: remote -> uk.ac.rdg.resc:edal-ncwms-based-webapp (-) 1182: local -> com.inflinx.book.ldap:practical-ldap-empty-archetype (-) 1183: local -> com.inflinx.book.ldap:practical-ldap-archetype (-) Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 491: 

إنشاء مشروع ويب


يوفر Maven النموذج الأصلي لـ maven-archetype-webapp لإنشاء تطبيق ويب. لنقم بإنشاء مثل هذا التطبيق عن طريق استدعاء الأمر التالي في المجلد C: \ apress \ gswm-book \ Chapter6 :

 mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp 

يتم تنفيذ هذا الأمر بشكل تفاعلي. بالنسبة للأسئلة الواردة ، أدخل المعلومات التالية:

 Define value for property 'groupId': : com.apress.gswmbook Define value for property 'artifactId': : gswm-web Define value for property 'version': 1.0-SNAPSHOT: : <<Hit Enter>> Define value for property 'package': com.apress.gswmbook: : war Confirm the properties configuration: groupId: com.apress.gswmbook artifactId: gswm-web version: 1.0-SNAPSHOT package: war Y: <<Hit Enter>> 

يجب أن يبدو هيكل المجلد الذي تم إنشاؤه كما هو موضح في الشكل 6-1 :

الشكل 6-1. هيكل مشروع ويب مخضرم



ملف pom.xml صغير ويحتوي على تبعية واحدة - JUnit . يمكن لـ Maven تبسيط إطلاق تطبيق الويب الخاص بك باستخدام خوادم الويب المضمنة مثل Tomcat أو Jetty . تعرض القائمة 6-2 ملف pom.xml المعدل مع إضافة Tomcat .

قائمة 6-2. ملف pom.xml معدل مزود بمكون Tomcat مضمن

 <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-web</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>gswm-web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>gswm-web</finalName> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> </plugins> </build> </project> 

لتشغيل تطبيق الويب هذا على خادم Tomcat ، اتصل بالأمر التالي في دليل جذر المشروع:

 mvn tomcat7:run 

سترى مشروعًا تفصيليًا وناتجًا مشابهًا لذلك المعروض في القائمة 6-3 .

قائمة 6-3. إخراج الأمر تشغيل Tomcat

 Oct 11, 2014 12:08:43 PM org.apache.catalina.core.StandardService startInternal INFO: Starting service Tomcat Oct 11, 2014 12:08:43 PM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.47 Oct 11, 2014 12:08:45 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [334] milliseconds. Oct 11, 2014 12:08:45 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] 

الآن قم بتشغيل المتصفح وانتقل إلى localhost : 8080 / gswm-web / . يجب أن تشاهد صفحة ويب مثل تلك الموضحة في الشكل 6-2 .

الشكل 6-2. مشروع ويب يعمل في المستعرض



مشروع متعدد النماذج


غالبًا ما تنقسم مشروعات Java Enterpise Edition (JEE) إلى عدة وحدات لتسهيل التطوير والصيانة. تنتج كل من هذه الوحدات عناصر فنية مثل Enterprise JavaBeans (EJBs) وخدمات الويب ومشاريع الويب و JARs للعملاء. تدعم Maven تطوير مشاريع JEE الكبيرة ، مما يسمح لك باستضافة العديد من مشاريع Maven داخل مشروع Maven آخر. ويبين الشكل 6-3 هيكل هذا المشروع متعدد الوحدات. يحتوي المشروع الأصلي على ملف pom.xml والعديد من مشاريع Maven في الداخل.

الشكل 6-3. هيكل مشروع متعدد الوحدات



حتى نهاية هذا الفصل ، سنشرح كيفية بناء مشروع متعدد الوحدات لمهمة تحتاج فيها إلى تقسيم مشروع كبير إلى تطبيق ويب ( WAR artifact) يوفر واجهة مستخدم ومشروع خدمة ( JAR artifact) يحتوي على رمز طبقة الخدمة والمشروع الثبات يحتوي على رمز مستوى المستودع. يوضح الشكل 6-4 تمثيلاً مرئيًا لمثل هذا السيناريو.

الشكل 6-4. مشروع متعدد النماذج مخضرم



لنبدأ العملية من خلال إنشاء مشروع رئيسي. للقيام بذلك ، قم بتشغيل الأمر التالي في موجه الأوامر في المجلد C: \ apress \ gswm-book \ Chapter6:

 mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-parent -Dversion=1.0.0-SNAPSHOT -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=pom-root 

يقوم النموذج الأصلي لـ pom-root بإنشاء مجلد gswm-الأصل وفيه ملف pom.xml .

كما هو موضح في القائمة 6-4 ، يحتوي ملف pom.xml الذي تم إنشاؤه على الحد الأدنى من المحتوى. لاحظ أن نوع pom محدد في علامة التعبئة للمشروع الأصلي.

قائمة 6-4. ملف الوالد pom.xml

 <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.apress.gswmbook</groupId> <artifactId>gswm-parent</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <name>gswm-parent</name> </project> 

الآن قم بإنشاء مشروع ويب عن طريق تشغيل الأمر التالي في المجلد الأصل C: \ apress \ gswm-book \ Chapter6 \ gswm :

 mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-web -Dversion=1.0.0-SNAPSHOT -Dpackage=war -DarchetypeArtifactId=maven-archetype-webapp 

في عملية إنشاء مشروع الويب هذا ، زودت Maven بإحداثيات مثل groupId والإصدار وما إلى ذلك كمعلمات تم تمريرها إلى هدف التوليد ، الذي أنشأ مشروع gswm-web .

الخطوة التالية هي إنشاء مشروع خدمة. من المجلد C: \ apress \ gswm-book \ Chapter6 \ gswm-الأصل ، قم بتشغيل الأمر التالي:

 mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-service -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 

يرجى ملاحظة أنك لم تحدد معلمة الحزمة ، مثل يقوم maven-archetype-quickstart بإنشاء مشروع JAR افتراضي. لاحظ أيضًا استخدام معلمة الوضع التفاعلي . إنه ببساطة يخبر Maven بتنفيذ الأمر دون مطالبة المستخدم بأي معلومات.

على غرار الخطوة السابقة ، قم بإنشاء مشروع Java gosm-repository التالي من خلال تنفيذ الأمر التالي في المجلد C: \ apress \ gswm-book \ Chapter6 \ gswm-الأصل :

 mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-repository -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 

الآن بعد أن تم إنشاء جميع المشاريع ، ألق نظرة على ملف pom.xml في مجلد gswm-الأصل . تعرض القائمة 6-5 محتوياتها.

قائمة 6-5. ملف pom.xml الأصلي مع الوحدات النمطية

 <?xml version="1.0" encoding="UTF-8"?> <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.apress.gswmbook</groupId> <artifactId>gswm-parent</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <name>gswm-parent</name> <modules> <module>gswm-web</module> <module>gswm-service</module> <module>gswm-repository</module> </modules> </project> 

يسمح لك عنصر الوحدات بتعريف الوحدات الفرعية في مشروع متعدد الوحدات. أثناء إنشاء كل وحدة نمطية ، يسجلها Maven كأطفال. بالإضافة إلى ذلك ، يقوم بتعديل ملفات pom.xml للوحدات نفسها ، وإضافة معلومات حول pom.xml الأصل إليها . تعرض القائمة 6-6 ملف pom.xml لمشروع gswm-web ، الذي يحدد عنصر pom الأصلي.

الإدراج 6-6. ملف pom.xml لوحدة الويب

 <?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-parent</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-web</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>war</packaging> <name>gswm-web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>gswm-web</finalName> </build> </project> 

الآن بعد أن تم تثبيت البنية التحتية بالكامل ، يمكنك تجميع المشروع التالي. فقط قم بتشغيل أمر حزمة mvn من مجلد مشروع gswm ، كما هو موضح في القائمة 6-7 .

قائمة 6-7. تم إطلاق أمر حزمة Maven في دليل المشروع الأصلي

 C:\apress\gswm-book\chapter6\gswm-parent>mvn package [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] gswm-parent [INFO] gswm-web Maven Webapp [INFO] gswm-service [INFO] gswm-repository [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] gswm-parent ....................................... SUCCESS [0.001s] [INFO] gswm-web Maven Webapp ............................. SUCCESS [1.033s] [INFO] gswm-service ...................................... SUCCESS [0.552s] [INFO] gswm-repository ................................... SUCCESS [0.261s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.949s [INFO] Finished at: Mon Oct 13 23:09:21 MDT 2014 [INFO] Final Memory: 6M/15M [INFO] ------------------------------------------------------------------------ 

إنشاء نماذج أصلية


يوفر Maven عدة طرق لإنشاء نموذج أصلي جديد. هنا سنستخدم مشروعًا موجودًا لهذا الغرض.

لنبدأ بإنشاء مشروع نموذج أولي سيتم استخدامه كأساس لتوليد النموذج الأصلي. سيكون هذا المشروع متوافقًا مع Servlet 3.0 ويحتوي على Status Servlet التي تُرجع رمز حالة HTTP 200 ("OK" - طلب ناجح). بدلاً من إنشاء مشروع ويب من البداية ، انسخ مشروع gswm-web الذي تم إنشاؤه سابقًا وأنشئ النموذج الأولي gswm-web-protot في المجلد C: \ apress \ gswm-book \ Chapter6 . قم بإجراء التغييرات التالية على المشروع الذي نسخته للتو:

1. قم بإزالة كافة الموارد الأخرى ، مثل الملفات الخاصة ببيئة التطوير المتكاملة (IDE) ( .project ، .classpath ، إلخ.) التي لا تريد تضمينها في النموذج الأصلي.

2. استبدل محتويات ملف web.xml من مجلد webapp / WEB-INF . سيؤدي ذلك إلى تهيئة تطبيق الويب لاستخدام Servlet 3.0 :

 <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Archetype Created Web Application</display-name> </web-app> 

3. إضافة تبعية Servlet 3.0 إلى ملف pom.xml . يظهر محتوى pom.xml المحدث في القائمة 6-8 .

قائمة 6-8. ملف Pom.xml مع تبعية Servlet

 <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-web</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>gswm-web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>gswm-web</finalName> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> </plugins> </build> </project> 

4. منذ ذلك الحين سنقوم بتطوير مشروع ويب في Java ، ثم نقوم بإنشاء مجلد يسمى java في src / الدليل الرئيسي . وبالمثل ، قم بإنشاء مجلدات الاختبار / جافا واختبار / الموارد في دليل src .

5. قم بإنشاء ملف AppStatusServlet.java الذي ينتمي إلى حزمة com.apress.gswmbook.web.servlet في دليل src / main / java . يتم تحويل الحزمة com.apress.gswmbook.web.servlet إلى بنية المجلد com \ apress \ gswmbook \ web \ servlet . يظهر كود المصدر لملف AppStatusServelet.java في القائمة 6-9 .

قائمة 6-9. كود المصدر لفئة Java AppStatusServlet

 package com.apress.gswmbook.web.servlet; import javax.servlet.annotation.WebServlet; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; @WebServlet("/status") public class AppStatusServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { PrintWriter writer = response.getWriter(); writer.println("OK"); response.setStatus(response.SC_OK); } } 

سيكون تصميم النموذج الأولي في رحلة إلى التصميم الموضح في الشكل 6-5 .

التين. 6-5. تم إنشاء مشروع النموذج الأولي



باستخدام سطر الأوامر ، انتقل إلى مجلد gswm-web-prototype للمشروع من تشغيل الأمر التالي:

 mvn archetype:create-from-project 

في نهاية الأمر ، سترى الرسالة Archetype التي تم إنشاؤها في target / مولدة - مصادر / archetype . يوجد النموذج الأصلي الذي تم إنشاؤه في المجلد gswm-web-prototype / الهدف / المولد- المصادر / النموذج الأصلي .

الخطوة التالية هي نقل العنصر الذي تم إنشاؤه حديثًا إلى مجلد gswm-web-archetype منفصل لتكوينه قبل النشر. للقيام بذلك ، اتبع الخطوات التالية:

1. أنشئ مجلد gswm-web-archetype في دليل C: \ apress \ gswm-book \ Chapter6 .

2. انسخ الدلائل الفرعية والملفات من المجلد C: \ apress \ gswm-book \ Chapter6 \ gswm-web-prototype \ target \ مولدات المصادر \ النموذج الأصلي إلى مجلد gswm-web-archetype .

3. قم بإزالة الدليل الفرعي الهدف من المجلد C: \ apress \ gswm-book \ Chapter6 \ gswm-web-archetype .

يجب أن تكون بنية المجلد لـ gswm-web-archetype مماثلة لتلك الموضحة في الشكل 6-6 .

التين. 6-6. هيكل مشروع نموذج الويب



لنبدأ عملية التعديل بملف pom.xml الموجود في مجلد gswm-web-archetype \ src \ main \ resources \ archetype-resources . تغيير finalName في pom.xml من gswm-web إلى $ {artifactId}. أثناء عملية إنشاء المشروع ، سيستبدل Maven التعبير $ {artifactId} بالقيمة التي يقدمها المستخدم.

عندما يتم إنشاء مشروع من النموذج الأصلي ، يسأل Maven المستخدم عن اسم الحزمة. ينشئ Maven بنية مجلد تتوافق مع الحزمة الموجودة في دليل src / main / java للمشروع الذي تم إنشاؤه. ثم يقوم Maven بنقل جميع المحتويات من مجلد archetype-resources / src / main / java archetype إلى هذه الحزمة. لأن إذا كنت تريد أن يكون AppStatusServlet في الحزمة الفرعية web.servlet ، فأنشئ مجلد الويب / servlet وانقل AppStatusServlet هناك. يوضح الشكل 6-7 الموقع الجديد لـ AppStatusServlet.java .

الشكل 6-7. AppStatusServlet في حزمة web.servlet



افتح AppStatusServlet.java وقم بتغيير اسم الحزمة من الحزمة $ {package} ؛ على الحزمة $ {package} .web.servlet ؛
الخطوة الأخيرة في إنشاء نموذج أصلي هي تنفيذ الأمر التالي من سطر الأوامر ، الموجود في مجلد gswm-web-archetype:

 mvn clean install 

استخدام النماذج الأولية


بمجرد تثبيت النموذج الأصلي ، فإن أسهل طريقة لإنشاء مشروع منه هي ، في المجلد C: \ apress \ gswm-book \ Chapter6 ، تنفيذ الأمر التالي:
 mvn archetype:generate -DarchetypeCatalog=local 


ردًا على استفسارات Maven ، أدخل القيم الموضحة في القائمة 6-10 ، وسترى المشروع الذي تم إنشاؤه.

قائمة 6-10. إنشاء مشروع جديد باستخدام النموذج الأصلي

 C:\apress\gswm-book\chapter6>mvn archetype:generate -DarchetypeCatalog=local [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] Generating project in Interactive mode [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache. maven.archetypes:maven-archetype-quickstart:1.0) Choose archetype:1: local -> com.apress.gswmbook:gswm-web-archetype (gswm-web-archetype) Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 1 Define value for property 'groupId': : com.apress.gswmbook Define value for property 'artifactId': : test-project Define value for property 'version': 1.0-SNAPSHOT: : Define value for property 'package': com.apress.gswmbook: : Confirm properties configuration: groupId: com.apress.gswmbook artifactId: test-project version: 1.0-SNAPSHOT package: com.apress.gswmbook Y: : ------------------------------------------------------------------------------ project [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1:27.635s [INFO] Finished at: Mon Oct 13 23:36:01 MDT 2014 [INFO] Final Memory: 9M/22M [INFO] ------------------------------------------------------------------------ 

لأن يحتوي ملف pom.xml الخاص بمشروع الاختبار بالفعل على المكون الإضافي Tomcat ، ثم قم بتشغيل الأمر mvn tomcat7: run في المجلد C: \ apress \ gswmbook \ Chapter6 \ test-project لبدء المشروع . افتح متصفحًا وانتقل إلى localhost : 8080 / test-project / status . سترى النقش موافق ، كما هو موضح في الشكل 6-8 .

الشكل 6-8. الصفحة التي تم إنشاؤها بواسطة المشروع الذي تم إنشاؤه



الملخص


تعد النماذج الأصلية لـ Maven بذرة مشروعات تتيح لك إطلاق مشاريع جديدة بسرعة. في هذا الفصل ، تم استخدام النماذج الأولية المدمجة لإنشاء مشاريع معقدة مخضرم ، مثل مشاريع الويب أو المشاريع متعددة الوحدات. لقد تعلمت أيضًا كيفية إنشاء واستخدام نماذج مخصصة.

في الفصل التالي ، ستتعلم أساسيات إنشاء المواقع والتوثيق وإعداد التقارير باستخدام Maven.

Source: https://habr.com/ru/post/ar421323/


All Articles