English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Maven verwendet Archetypen (Archetypen), um eine benutzerdefinierte Projektstruktur zu erstellen und so Maven-Projektvorlagen zu bilden.
In den vorangegangenen Kapiteln haben wir gelernt, dass Maven den folgenden Befehl verwendet, um Java-Projekte schnell zu erstellen:
mvn archetype:generate
Ein Archetyp ist ein Maven-Plugin, genauer gesagt ein Projekttemplate, dessen Aufgabe es ist, eine Projektstruktur basierend auf einem Muster zu erstellen. Wir werden das quickstart-Archetypen-Plugin verwenden, um eine einfache Java-Anwendung zu erstellen.
Lassen Sie uns die Kommandozeile öffnen, wechseln Sie zu C:\> MVN Verzeichnis und führen Sie den folgenden mvn-Befehl aus:
C:\MVN> mvn archetype:generate
Maven wird beginnen, zu verarbeiten und fordert die Auswahl des erforderlichen Archetypen an:
[INFO] Durchsuchen nach Projekten... [INFO] Durchsuchen des Repositories nach einem Plugin mit dem Präfix: 'archetype'. [INFO] ------------------------------------------------------------------- [INFO] Bau des Maven-Standardprojekts [INFO] Aufgabe-Segment: [archetype:generate] (Aggregator-stil) [INFO] ------------------------------------------------------------------- [INFO] Vorbereitung des Archetypen: generate ... 600: fern -> org.trailsframework:trails-archetype (-) 601: remote -> org.trailsframework:trails-sicher-archetype (-) 602: remote -> org.tynamo:tynamo-archetype (-) 603: remote -> org.wicketstuff.scala:wicket-scala-archetype (-) 604: remote -> org.wicketstuff.scala:wicketstuff-scala-archetype Basis-Einrichtung für ein Projekt, das Scala und Wicket kombiniert, abhängig von Wicket-Scala-Projekt. Enthält einen Beispiel-Spezifikationstest.) 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 (Macht es einfach, ein Maven-Projekt für die Erstellung von XWiki Components zu erstellen.) 609: remote -> org.xwiki.rendering:xwiki-rendering-archetype-macro (Macht es einfach, ein Maven-Projekt für die Erstellung von XWiki Rendering Macros zu erstellen.) 610: remote -> org.zkoss:zk-archetype-component (Der ZK Component Archetyp) 611: remote -> org.zkoss:zk-archetype-webapp (Der ZK webapp Archetyp) 612: remote -> ru.circumflex:circumflex-archetype (-) 613: remote -> se.vgregion.javg.maven.archetypes:javg-minimal-archetype (-) 614: remote -> sk.seges.sesam:sesam-annotation-archetype (-) Wählen Sie eine Nummer oder wenden Sie einen Filter an (Format: [groupId:]artifactId,大小写敏感 enthält): 203:
Drücken Sie Enter Wählen Sie die Standardoption (203:maven-archetype-quickstart).
Wählen Sie org.apache.maven.archetypes:maven-archetype-quickstart Version: 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 Wählen Sie eine Nummer: 6:
Drücken Sie Enter Wählen Sie die Standardoption (6:maven-archetype-quickstart:1.1)
Maven wird Projektinformationen abfragen. Geben Sie die Projektinformationen gemäß den Anforderungen ein. Drücken Sie Enter, um den Standardwert zu verwenden. Sie können auch eigene Werte eingeben.
Definiere den Wert für das Attribut 'groupId': : com.companyname.insurance Definiere den Wert für das Attribut 'artifactId': : health Definiere den Wert für das Attribut 'version': 1.0-SNAPSHOT Definiere den Wert für das Attribut 'package': com.companyname.insurance
Maven will ask to confirm the project details, press}} Enter or press Y
Confirm properties configuration: groupId: com.companyname.insurance artifactId: health version: 1.0-SNAPSHOT package: com.companyname.insurance Y:
Now Maven will start creating the project structure, as shown below:
[INFO] ----------------------------------------------------------------------- [INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1 [INFO] ----------------------------------------------------------------------- [INFO] Parameter: groupId, Value: com.companyname.insurance [INFO] Parameter: packageName, Value: com.companyname.insurance [INFO] Parameter: package, Value: com.companyname.insurance [INFO] Parameter: artifactId, Value: health [INFO] Parameter: basedir, Value: C:\MVN [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] project created from Old (1.x) Archetype in dir: C:\MVN\health [INFO] ----------------------------------------------------------------------- [INFO] BUILD SUCCESSFUL [INFO] ----------------------------------------------------------------------- [INFO] Total time: 4 minutes 12 seconds [INFO] Finished at: Fri Jul 13 11:10:12 IST 2012 [INFO] Final Memory: 20M/90M [INFO] -----------------------------------------------------------------------
Now navigate to the C:\ > MVN directory. You will see a java application project named health, just like the artifactId name established when the project was created. Maven will create a project with a standard directory layout, as shown below:
Maven generiert automatisch eine pom.xml-Datei für das Projekt, wie folgt:
<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 wird automatisch eine Test-Datei App.java generieren.
路径: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; /** * Unit test for simple App. */ public class AppTest extends TestCase { /** * Create the test case * * @param testName name of the test case */ public AppTest( String testName ) { super( testName ); } /** * @return the suite of tests being tested */ public static Test suite() { return new TestSuite( AppTest.class ); } /** * Rigourous Test :-) */ public void testApp() { assertTrue( true ); } }
So, now you can see the power of Maven. You can create any type of project with simple Maven commands and start your development.