English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

نموذج مشروع Maven

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

What is archetype?

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.

Using project template

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).

Maven سيسأل عن إصدار النموذج

اختر 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 مشروعًا به بنية مجلدات قياسية، مثلما هو موضح أدناه:

إنشاء pom.xml

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>

App.java

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!" );
    }
}

AppTest.java

سيقوم 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 البسيطة لإنشاء أي نوع من المشاريع، ويمكنك بدء تطويرك.