What is done during the creation of a project?
Archetype selection
First, the Archetype Plugin asks the user to select an archetype from a list of known archetypes. Archetypes are found in archetype catalogs.
Archetype configuration
Then the Archetype Plugin asks the user to provide values for each of the four main required properties, which are the project's groupId, artifactId, version and package.
It also asks for values for the additional required properties defined in the archetype's metadata file.
Project generation
Finally, the Archetype Plugin generates the Maven project from the selected/configured archetype.
The archetype used to generate the project can be single or multi-module.
The archetype used to generate the project can be partial, which means it enhances an existing project instead of creating a new one.
If the Archetype Plugin is called from an existing project, using a complete (not partial) archetype, then it generates a sub module in the existing project.
If the Archetype Plugin is configured to create a project in an existing directory, it first checks for the existence of a pom.xml
file before failing the generation.
Batch mode
It is possible to call the Archetype Plugin to generate a project in batch mode (to get rid of the prompting). This is achieved by providing the Archetype Plugin with all the needed values as system properties.
archetypeCatalog
which specifies the catalog(s). The valid catalogs are:internal
(the default),local
,remote
.internal
uses an internal cataloglocal
uses thearchetype-catalog.xml
file from the local repositoryremote
uses thearchetype-catalog.xml
from Maven Central, either direct or via a repository manager file
archetypeGroupId
specifies the groupId of the archetype to usearchetypeArtifactId
specifies the artifactId of the archetype to usearchetypeVersion
specifies the version of the archetype to usearchetypeRepository
specifies the repository in which the archetype residesgroupId
specifies the groupId of the generated projectartifactId
specifies the artifactId of the generated projectversion
specifies the version of the generated projectpackage
specifies the package for the sources of the generated projectanotherVelocityProperty
specifies any other required property
Behind a Proxy
Being behind a proxy is automatically configured by Maven.