English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Maven uses archetype (prototype) to create a custom project structure, forming a Maven project template.
In the previous chapters, we learned that Maven uses the following command to quickly create a java project:
mvn archetype:generate
Archetype, also known as prototype, is a Maven plugin, to be precise, a project template, whose task is to create a project structure based on the template. We will use the quickstart archetype plugin to create a simple java application.
Let's open the command console, jump to the C:\> MVN directory and execute the following mvn command:
C:\MVN> mvn archetype:generate
Maven will start processing and ask to select the required archetype:
[INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'archetype'. [INFO] ------------------------------------------------------------------- [INFO] Building Maven Default Project [INFO] task-segment: [archetype:generate] (aggregator-style) [INFO] ------------------------------------------------------------------- [INFO] Preparing archetype:generate ... 600: remote -> org.trailsframework:trails-archetype (-) 601: remote -> org.trailsframework:trails-secure-archetype (-) 602: remote -> org.tynamo:tynamo-archetype (-) 603: remote -> org.wicketstuff.scala:wicket-scala-archetype (-) 604: remote -> org.wicketstuff.scala:wicketstuff-scala-archetype Basic setup for a project that combines Scala and Wicket, depending on the Wicket-Scala project. Includes an example Specs test.) 605: remote -> org.wikbook:wikbook.archetype (-) 606: remote -> org.xaloon.archetype:xaloon-archetype-wicket-jpa-glassfish (-) 607: remote -> org.xaloon.archetype:xaloon-archetype-wicket-jpa-spring (-) 608: remote -> org.xwiki.commons:xwiki-commons-component-archetype (Make it easy to create a maven project for creating XWiki Components.) 609: remote -> org.xwiki.rendering:xwiki-rendering-archetype-macro (Make it easy to create a maven project for creating XWiki Rendering Macros.) 610: remote -> org.zkoss:zk-archetype-component (The ZK Component archetype) 611: -> remote -> org.zkoss:zk-archetype-webapp (نموذج تطبيق ZK) 612: -> remote -> ru.circumflex:circumflex-archetype (-) 613: -> remote -> se.vgregion.javg.maven.archetypes:javg-minimal-archetype (-) 614: -> remote -> sk.seges.sesam:sesam-annotation-archetype (-) اختر رقمًا أو تطبيق مرشح (التنسيق: [groupId:]artifactId، الحساسية للكتابة: يحتوي على): 203:
اضغط ادخل اختر الخيار الافتراضي (203:maven-archetype-quickstart).
اختر org.apache.maven.archetypes:maven-archetype-quickstart إصدار: 1: 1.0-alpha-1 2: 1.0-alpha-2 3: 1.0-alpha-3 4: 1.0-alpha-4 5: 1.0 6: 1.1 اختر رقمًا: 6:
اضغط ادخل اختر الخيار الافتراضي (6:maven-archetype-quickstart:1.1)
Maven سيسأل عن تفاصيل المشروع. أدخل تفاصيل المشروع وفقًا للطلب. إذا كنت ترغب في استخدام القيمة الافتراضية، اضغط على مفتاح Enter. يمكنك أيضًا إدخال قيمة خاصة بك.
حدد قيمة الخاصية 'groupId': : com.companyname.insurance حدد قيمة الخاصية 'artifactId': : health حدد قيمة الخاصية 'version': 1.0-SNAPSHOT حدد قيمة الخاصية 'package': com.companyname.insurance
Maven سيسأل للتحقق من تفاصيل المشروع، اضغط ادخل أو اضغط على Y
تحقق من تكوين الخصائص groupId: com.companyname.insurance artifactId: health version: 1.0-SNAPSHOT package: com.companyname.insurance Y:
الآن ستبدأ Maven في إنشاء بنية المشروع، وستشاهد كما يلي:
[INFO] ----------------------------------------------------------------------- [INFO] استخدام المعلمات التالية لإنشاء المشروع من النموذج القديم (1.x): maven-archetype-quickstart:1.1 [INFO] ----------------------------------------------------------------------- [INFO] المعدل: groupId، القيمة: com.companyname.insurance [INFO] المعدل: packageName، القيمة: com.companyname.insurance [INFO] المعدل: package، القيمة: com.companyname.insurance [INFO] المعدل: artifactId، القيمة: health [INFO] المعدل: basedir، القيمة: C:\MVN [INFO] المعدل: version، القيمة: 1.0-SNAPSHOT [INFO] تم إنشاء المشروع من النموذج القديم (1.x) في مجلد: C:\MVN\health [INFO] ----------------------------------------------------------------------- [INFO] BUILD SUCCESSFUL [INFO] ----------------------------------------------------------------------- [INFO] الوقت الإجمالي: 4 دقائق 12 ثانية [INFO] إنتهاء في: الجمعة 13 تموز 11:10:12 IST 2012 [INFO] ذاكرة النهاية: 20M/90M [INFO] -----------------------------------------------------------------------
الآن انتقل إلى مجلد C:\ > MVN. ستشاهد مشروع تطبيق Java يُدعى health، وهو نفس اسم artifactId الذي تم إنشاؤه عند إنشاء المشروع. سينشئ Maven مشروعًا به بنية مجلدات قياسية، مثلما هو موضح أدناه:
Maven سيقوم بإنشاء ملف 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.companyname.insurance</groupId> <artifactId>health</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>health</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
Maven سيقوم بإنشاء ملف اختبار java تلقائيًا يُدعى App.java.
الطريق:C:\MVN\consumerBanking\src\main\java\com\companyname\bank
package com.companyname.insurance; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); } }
سيقوم Maven بإنشاء ملف java AppTest.java تلقائيًا.
المسار هو: C:\MVN\consumerBanking\src\test\java\com\companyname\bank
package com.companyname.insurance; import.junit.framework.Test; import.junit.framework.TestCase; import junit.framework.TestSuite; /** * اختبار وحدة بسيط لـ App. */ public class AppTest extends TestCase { /** * إنشاء حالة الاختبار * * @param testName اسم حالة الاختبار */ public AppTest( String testName ) { super( testName ); } /** * @return مجموعة الاختبارات التي يتم اختبارها */ public static Test suite() { return new TestSuite( AppTest.class ); } /** * اختبار صارم :-) */ public void testApp() { assertTrue( true ); } }
وهذا كل شيء. الآن يمكنك رؤية قوة Maven. يمكنك استخدام أوامر Maven البسيطة لإنشاء أي نوع من المشاريع، ويمكنك بدء تطويرك.