It can be very helpful to dispose of a library of pre-configured projects. Here, we want to create a multi-module project composed of a core (Hibenate Dao) and a web (SpringMVC webapp) module.
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.stephou</groupId> <artifactId>parent</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>parent</name> <url>http://maven.apache.org</url> <modules> <module>core</module> <module>web</module> </modules> ...
Use a mvn archetype:create-from-project
to create the archetype project.
and in target/generated-sources/archetype/ use a mvn install
.
In the end, into a new directory, the mvn archetype:generate -DarchetypeCatalog=local
will allow you to use the project as a ready-to-code project 🙂
D:\documents\NetBeansProjects>%M2_HOME%\bin\mvn archetype:generate -DarchetypeCa talog=local [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'archetype'. [INFO] org.apache.maven.plugins: checking for updates from central [INFO] org.codehaus.mojo: checking for updates from central [INFO] artifact org.apache.maven.plugins:maven-archetype-plugin: checking for up dates from central [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Default Project [INFO] task-segment: [archetype:generate] (aggregator-style) [INFO] ------------------------------------------------------------------------ [INFO] Preparing archetype:generate [INFO] No goals needed for project - skipping [INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus .velocity.ContextClassLoaderResourceLoader'. [INFO] Setting property: velocimacro.messages.on => 'false'. [INFO] Setting property: resource.loader => 'classpath'. [INFO] Setting property: resource.manager.logwhenfound => 'false'. [INFO] [archetype:generate {execution: default-cli}] [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: 1: local -> parent-archetype (parent-archetype) Choose a number: (1): 1 Define value for groupId: : net.stephou Define value for artifactId: : springmvc-mvn-webapp Define value for version: 1.0-SNAPSHOT: : Define value for package: net.stephou: : Confirm properties configuration: groupId: net.stephou artifactId: springmvc-mvn-webapp version: 1.0-SNAPSHOT package: net.stephou Y: : Y [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1 minute 15 seconds [INFO] Finished at: Sun Feb 28 22:11:56 CET 2010 [INFO] Final Memory: 8M/14M [INFO] ------------------------------------------------------------------------
A new folder named springmvc-mvn-webapp will appear in the selected folder. Just open it in your favourite IDE.
See also : http://maven.apache.org/plugins/maven-archetype-plugin/advanced-usage.html