# Maven Archetype

## 1. 从project创建archetype

mvn archetype:create-from-project  

## 2. Archetype的一些built-in参数

Variable Meaning
__rootArtifactId__ 做文件夹名替换用，例如__rootArtifactId__-dal
${rootArtifactId} Already explained above, it holds the value entered by the user as the project name (the value that maven ask as the artifactId: in the prompt when the user runs the archetype) ${artifactId} If your project is composed by one module, this variable will have the same value as ${rootArtifactId}, but if the project contains several modules, this variable will be replaced by the module name inside every module folder, for example: given a module named portlet-domain inside a project namedportlet, all the files inside this module folder that are to be filtered will have the value of the variable ${artifactId} replaced by portlet-domainwhereas the ${rootArtifactId} variable will be replaced by portlet ${package} The user provided package for the project, also prompted by maven when the user runs the archetype
${packageInPathFormat} The same value as ${package} variable but replacing '.' with the character'/', e.g:, for the package com.foo.bar this variable is com/foo/bar
${groupId} The user supplied groupId for the project, prompted by maven when the user runs the archetype ${version} The user supplied version for the project, prompted by maven when the user runs the archetype

The archetype-metadata.xml stored in the archetype-resources/META-INF/maven folder after the project is created, is where you need to tweak what you want generated and how.
• id – This is the name of the module that will be generated.
• dir – the template dir
• name – the artifact Id that will be put in the pom file.