Comment créer un projet avec le modèle Maven
Dans ce tutoriel, nous allons vous montrer comment utilisermvn archetype:generate
pour générer un projet à partir d'une liste de modèles Maven existants. Dans Maven 3.1.1, il existe plus de 1000 modèles, fou, l'équipe Maven devrait filtrer certains modèles inutiles.
Normalement, nous utilisons simplement les deux modèles suivants:
-
maven-archetype-webapp
- Projet Web Java (WAR) -
maven-archetype-quickstart
- Projet Java (JAR)
1. Modèles Maven 1000+
Si vous tapezmvn archetype:generate
, plus de 1000 modèles seront affichés à l'écran et vous n'avez aucun moyen de le voir ou de choisir ce que vous voulez. Pour le résoudre, affichez la liste des modèles dans un fichier texte comme celui-ci:
$ mvn archetype:generate > templates.txt //waiting few seconds, then exits Press CTRL + C $ vim templates.txt
2. Archétype Maven: générer
Étapes pour vous guider dans la génération d'un projet Web à partir d'un modèle Spring-Hibernate existant:
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
Ce nombre 314 peut varier en fonction de votre environnement. Trouvez votre numéro correct avec la technique indiquée à l'étape 1 ci-dessus.
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] ------------------------------------------------------------------------
Il générera les dossiers et fichiers de projet suivants.
Figure: Structure du projet généré dans Eclipse IDE.
Note
Pour importer le projet dans Eclipse, saisissezmvn eclipse:eclipse
et importez-le en tant que projet normal:
$ cd myweb $ pwd /Users/example/Documents/workspace/maven/template/myweb $ mvn eclipse:eclipse
3. Plus d'exemples
Si vous savez quelsarchetypeArtifactId
utiliser, ignorez simplement la commande en mode interactif comme ceci:
3.1 maven-archetype-quickstart (projet Java)
$ mvn archetype:generate -DgroupId=com.example.core -DartifactId=ProjectName -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Consultez cet exemple -How to create a Java project with Maven
3.2 maven-archetype-webapp (Projet Web Java)
$ mvn archetype:generate -DgroupId=com.example.web -DartifactId=ProjectName -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
Consultez cet exemple -How to create a Java web application project with Maven