So erstellen Sie ein Projekt mit der Maven-Vorlage

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:

  1. maven-archetype-webapp - Java-Webprojekt (WAR)

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

maven-template

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, welchearchetypeArtifactIdverwendet 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