So erstellen Sie ein Projekt mit Maven-Vorlage
In diesem Tutorial zeigen wir Ihnen, wie Sie mitmvn archetype:generate
ein Projekt aus einer Liste vorhandener Maven-Vorlagen generieren. In Maven 3.1.1 gibt es über 1000 Vorlagen, verrückt, das Maven-Team sollte einige nutzlose Vorlagen herausfiltern.
Normalerweise verwenden wir nur die folgenden zwei Vorlagen:
-
maven-archetype-webapp
- Java-Webprojekt (WAR) -
maven-archetype-quickstart
- Java-Projekt (JAR)
1. Maven 1000+ Vorlagen
Wenn Siemvn archetype:generate
eingeben, werden mehr als 1000 Vorlagen auf dem Bildschirm angezeigt, und Sie können sie nicht sehen oder auswählen, was Sie möchten. Um das Problem zu lösen, geben Sie die Vorlagenliste in eine Textdatei wie die folgende aus:
$ mvn archetype:generate > templates.txt //waiting few seconds, then exits Press CTRL + C $ vim templates.txt
2. Maven-Archetyp: generieren
Anleitung zum Generieren eines Webprojekts aus einer vorhandenen Spring-Hibernate-Vorlage:
2.1 List out the Maven templates :
$ 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) Choose archetype: 311: remote -> jboss:mobicents-ra-archetype (An archetype for slee resource adaptor.) //... 314: remote -> ml.rugal.archetype:springmvc-spring-hibernate (A pretty useful JavaEE application archetype based on springmvc spring and hibernate) //... 486: remote -> org.apache.maven.archetypes:maven-archetype-j2ee-simple (An archetype which contains a simplifed sample J2EE application.) 487: remote -> org.apache.maven.archetypes:maven-archetype-marmalade-mojo (-) 488: remote -> org.apache.maven.archetypes:maven-archetype-mojo (An archetype which contains a sample a sample Maven plugin.) 489: remote -> org.apache.maven.archetypes:maven-archetype-plugin (An archetype which contains a sample Maven plugin.) 491: remote -> org.apache.maven.archetypes:maven-archetype-portlet (An archetype which contains a sample JSR-268 Portlet.) 492: remote -> org.apache.maven.archetypes:maven-archetype-profiles (-) 493: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.) //...
2.2 Choose number “314” for ml.rugal.archetype:springmvc-spring-hibernate
templete, and fill in the detail :
Note
Diese Nummer 314 kann in Ihrer Umgebung variieren. Finden Sie Ihre richtige Nummer mit der in Schritt 1 oben aufgeführten Technik.
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 493: 314 Choose ml.rugal.archetype:springmvc-spring-hibernate version: 1: 0.1 2: 0.2 3: 0.3 Choose a number: 3: 3 Downloading: http://repo.maven.apache.org/maven2/ml/rugal/archetype/springmvc-spring-hibernate/0.3/springmvc-spring-hibernate-0.3.jar Downloaded: http://repo.maven.apache.org/maven2/ml/rugal/archetype/springmvc-spring-hibernate/0.3/springmvc-spring-hibernate-0.3.jar (29 KB at 19.7 KB/sec) Downloading: http://repo.maven.apache.org/maven2/ml/rugal/archetype/springmvc-spring-hibernate/0.3/springmvc-spring-hibernate-0.3.pom Downloaded: http://repo.maven.apache.org/maven2/ml/rugal/archetype/springmvc-spring-hibernate/0.3/springmvc-spring-hibernate-0.3.pom (4 KB at 5.5 KB/sec) Define value for property 'groupId': : com.example.web Define value for property 'artifactId': : myweb Define value for property 'version': 1.0-SNAPSHOT: : Define value for property 'package': com.example.web: : Confirm properties configuration: groupId: com.example.web artifactId: myweb version: 1.0-SNAPSHOT package: com.example.web Y: : y [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Archetype: springmvc-spring-hibernate:0.3 [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: groupId, Value: com.example.web [INFO] Parameter: artifactId, Value: myweb [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] Parameter: package, Value: com.example.web [INFO] Parameter: packageInPathFormat, Value: com/example/web [INFO] Parameter: package, Value: com.example.web [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] Parameter: groupId, Value: com.example.web [INFO] Parameter: artifactId, Value: myweb [INFO] project created from Archetype in dir: /Users/example/Documents/workspace/maven/template/myweb [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 35.210s [INFO] Finished at: Tue Oct 28 15:32:10 MYT 2014 [INFO] Final Memory: 10M/29M [INFO] ------------------------------------------------------------------------
Es werden die folgenden Projektordner und -dateien generiert.
Abbildung: Generierte Projektstruktur in Eclipse IDE.
Note
Um das Projekt in Eclipse zu importieren, geben Siemvn eclipse:eclipse
ein und importieren Sie es als normales Projekt:
$ cd myweb $ pwd /Users/example/Documents/workspace/maven/template/myweb $ mvn eclipse:eclipse
3. Mehr Beispiele
Wenn Sie wissen, welchearchetypeArtifactId
verwendet werden sollen, überspringen Sie den Befehl im interaktiven Modus wie folgt:
3.1 maven-archetype-quickstart (Java-Projekt)
$ mvn archetype:generate -DgroupId=com.example.core -DartifactId=ProjectName -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Überprüfen Sie dieses Beispiel -How to create a Java project with Maven
3.2 maven-archetype-webapp (Java-Webprojekt)
$ mvn archetype:generate -DgroupId=com.example.web -DartifactId=ProjectName -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
Überprüfen Sie dieses Beispiel -How to create a Java web application project with Maven