This page explains how to use Magnolia-specific Maven archetypes to jumpstart development of Magnolia Maven modules and projects.
You need Maven to generate Magnolia project archetypes. To setup Maven, follow the procedure described on our Maven setup page. During the setup, the
settings.xml file is created.
Depending on whether you are a user of the Community Edition or DX Core, check that the file contains the following snippet. If it does not, add it to the file, before the
The Archetype plugin
The Maven Archetype Plugin allows you to create a Maven project from an archetype – an existing template (a skeleton of files and directories).
If you already know which Magnolia archetype you want to generate, the fastest way is to supply the archetype's Maven coordinates (GAV) to the command line. For example:
If you omit the
archetypeVersion, the plugin automatically picks the oldest version.
By default, the archetype plugin collects a list of all possible archetypes, including those found at Maven Central. The list can be very long and it may take some time to generate it. To reduce the list only to available Magnolia archetypes, use the plugin command with the following
If you need to interrupt the command, press
CTRL + C.
Which Magnolia archetype to use?
Magnolia provides the following archetypes:
magnolia-project-archetype, generates a Magnolia project with a parent POM and a Magnolia webapp.
magnolia-module-archetype, generates a Magnolia Maven module. For details, please refer to the Modules page.
magnolia-blossom-module-archetype, generates a Magnolia Maven module with support for the Blossom module.
Before generating a project, the archetypes ask you to supply values for the following parameters:
|Required parameters||Example value||Explanation|
Typically, it reflects the name or domain of your organization.
|Maven ||Project-specific identifier.|
|Maven ||Project version. When creating a new project, use the value suggested by Maven, for example |
|Package name for Java classes reflecting both your organization and the specific project.|
Magnolia version to be used in your custom project.
A human-readable version of the
|The Java class name of the generated module class (for module archetypes only).|
|The version of the Magnolia Blossom module (for the blossom module archetype only).|
As of version 1.2.5, the following archetypes have been discontinued. Older versions may still appear if you use the filter option.
magnolia-forge-module-archetype, used to create a Magnolia module for the former Magnolia Forge (moved to GitHub: Magnolia Forge).
magnolia-theme-archetype, used to create an STK (deprecated) theme module.
Which archetype version should I use?
Use the latest archetype release:
. Exceptionally, Enterprise Edition projects for use with Magnolia 5.7 or lower should be generated with version
A creation of a project typically results in the following skeleton, with a few more files created in
src/main/webapp. For details, see Creating a custom webapp with Maven.
On the other hand, if you create a module, the skeleton will have a simpler structure (no multi-module Maven reactor), with a pre-generated Magnolia module descriptor and Java module class. See also Module structure.