...
Multiexcerpt |
---|
MultiExcerptName | structure-comparison |
---|
|
Magnolia module wrapped in a typical Maven module structure before it is built. | File-based Magnolia module under $magnolia.resources.dir = Light module |
---|
Code Block |
---|
<maven-module-name>/
├── pom.xml
└── src/
└── main/
├── java/
└── resources/
├── META-INF/
│ └── magnolia/
│ └── module-name.xml
└── <module-name>/
├── apps/
├── dialogs/
│ └── myDialog.yaml
├── webresources/
└── templates/
├── components/
│ ├── myComponent.ftl
│ └── myComponent.yaml
└── pages/
├── myTemplate.ftl
└── myTemplate.yaml |
| Code Block |
---|
$magnolia.resources.dir/
└── <module-name>/
├── apps/
├── dialogs/
│ └── myDialog.yaml
├── module.yaml
├── webresources/
└── templates/
├── components/
│ ├── myComponent.ftl
│ └── myComponent.yaml
└── pages/
├── myTemplate.ftl
└── myTemplate.yaml |
|
|
...
Magnolia provides a Maven archetype to build the skeleton the skeleton of a Magnolia Maven module. The archetype provides options to build different modules:
- Basic Magnolia module
- Theme module
- Magnolia module to be hosted on the Magnolia Forge
- Magnolia module using Blossom
- Magnolia project (a parent pom and a webapp))
The archetypeCatalog is in in https://nexus.magnolia-cms.com/content/groups/public/
.
...
- Create a directory on your local file system where the project will be stored and change into this directory.
Execute the following maven command:
Include Page |
---|
| INCL:_mvn archetype command |
---|
| INCL:_mvn archetype command |
---|
|
Choose an archetype when prompted. Here we choose the option choose the option magnolia-module-archetype
which which is a simple Magnolia project wrapped into Maven structure. Maven will then ask us for the standard Maven properties such as which version of Magnolia we will be using.
Next, the script asks to choose the archetype version - we recommend to choose always the latest version.
Now you must prompt typical Maven properties such as groupId, artifactId, package name and version plus the Magnolia specific parameters magnolia-bundle-version, module-class-name and module-name.
When you have prompted all the parameters - the archetype summarizes your inputs and you must confirm or can skip.
Code Block |
---|
|
Choose archetype:
1: https://nexus.magnolia-cms.com/content/groups/public/ -> info.magnolia.maven.archetypes:magnolia-theme-archetype (An archetype to create STK Theme modules)
2: https://nexus.magnolia-cms.com/content/groups/public/ -> info.magnolia.maven.archetypes:magnolia-project-archetype (An archetype to create a Magnolia project (a parent pom and a webapp))
3: https://nexus.magnolia-cms.com/content/groups/public/ -> info.magnolia.maven.archetypes:magnolia-module-archetype (An archetype to create basic Magnolia modules)
4: https://nexus.magnolia-cms.com/content/groups/public/ -> info.magnolia.maven.archetypes:magnolia-forge-module-archetype (An archetype to create a Magnolia module to be hosted on the Magnolia Forge)
5: https://nexus.magnolia-cms.com/content/groups/public/ -> info.magnolia.maven.archetypes:magnolia-blossom-module-archetype (An archetype to create Magnolia modules using Blossom)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 3
Choose info.magnolia.maven.archetypes:magnolia-module-archetype version:
1: 1.1.0
2: 1.2.0
3: 1.2.1
4: 1.2.2
5: 1.2.3-SNAPSHOT
Choose a number: 5: Code Block |
---|
|
Define value for property 'groupId': : com.example
Define value for property 'artifactId': : myModule
Define value for property 'version': 1.0-SNAPSHOT: :
Define value for property 'package': com.example: :
Define value for property 'magnolia-bundle-version': : 5.4.16
Define value for property 'module-class-name': : MyModule
Define value for property 'module-name': myModule: :
Confirm properties configuration:
groupId: com.example
artifactId: myModule
version: 1.0-SNAPSHOT
package: com.example
magnolia-bundle-version: 5.4.16
module-class-name: MyModule
module-name: myModule
Y: : Y |
If you confirm, Maven generates the archetype skeleton.