Skip to end of metadata
Go to start of metadata

This page provides a quick overview of module development for experienced Magnolia developers.  Developers new to Magnolia should start with our Geolocation tutorial An overview of Magnolia modules can be found at in our documentation on the Modules  page.


Using a Maven Archetype

You can use Maven 2's archetype plugin to quickly get started with creating a module or project.

Use this command:

You will first be prompted to "Choose an archetype".

You will further be prompted for various properties, whose names should hopefully be obvious enough for you to figure what to enter. If not, try some random value, see the results and try again (wink) (Please vote for this maven-archetype-plugin enhancement !)

Module archetype

The module archetype will generate a basic Magnolia module, including all necessary folders, a module descriptor and two classes:

Forge Module archetype

The Forge module archetype is very similar, but will provide a pom.xml with sensible defaults for use for a project hosted on the Magnolia Forge.

STK Theme archetype

The STK Theme archetype will produce a quickstart for an STK Theme .

Project archetype

The Project archetype will produce a skeleton for a "project"; this will contain

  • a parent pom
  • a webapp, overlaying magnolia-empty-webapp, ready to host your custom configuration files.

If you want to add a module to an existing project, generating the module artifact from within your project should get you started quickly, as it will adapt the new artifact's parent pom to match your existing project !

The Magnolia Maven Archetypes if a Magnolia Forge project. Have a look at http://jira.magnolia-cms.com/browse/ARCH to see known problems or suggest new features.

Please try it out and tell us what you think !

More info about Maven archetypes:

Changing a project from CE to EE

When you create a project using an archetype from the public group you get a Community Edition (CE) project. This means the project has dependencies to the CE bundle and you get only community modules. If you need a more substantial starting point, change the dependencies in your POM files to the Enterprise Edition (EE) bundle and webapp. This way you get enterprise modules such as Multisite and Workflow.

There are two videos in Magnolia Academy that explain how to work with Module Dependencies.

In your project POM, set:

  • groupIdinfo.magnolia.eebundle
  • artifactIdmagnolia-enterprise-bundle-parent

Change this:

CE dependencies in project POM

To this:

EE dependencies in project POM
  1. fake

In your webapp POM, set:

  • groupIdinfo.magnolia.eebundle
  • artifactIdmagnolia-enterprise-webapp

Change this:

CE dependencies in webapp POM

To this:

EE dependencies in webapp POM

 

Host your module at the Forge!

Hey, why not share your new module with the world and host it at the forge?

Your Rating: Results: PatheticBadOKGoodOutstanding! 124 rates

  1. May 22, 2009

    Is there already an Archetype for Modules in Magnolia 4.01 or 4.1?

    1. Mar 17, 2011

      Sorry for the late reply, but yes, finally !
      (you can even choose the Magnolia version when generating(wink))

  2. May 02, 2011

    If you occur an

    error when running

    on your newly created module, here is the solution http://forums.atlassian.com/thread.jspa?threadID=34952&tstart=30.

  3. Jun 17, 2011

    Way cool beans!

    Love the new archetypes! Thank you Joerg and Greg!

    In case anyone is interested, you may also add the archetypes to your local archetype-catalog as an alternative to passing in the -DarchetypeCatalog=http://nexus.magnolia-cms.com/content/groups/public/ argument.

    To do so:

    1. Make sure you've run through the steps to setup Maven with Magnolia's Nexus Repositories - @see Maven Setup
    2. Under your ~/.m2 check to see if you already have an archetype-catalog.xml file. If not, create one.
    3. Open up archetype-catalog.xml, and add the magnolia archetypes you'd like to use, for instance:
      archetype-catalog.xml
    4. Save the file, open up a terminal, and run:
    5. You should see the magnolia archetypes in the list of available archetypes to choose from
    6. Enjoy!
    1. Jun 17, 2011

      True, but that'd mean maintaining that list (new archetypes, new versions, ...) - whereas our catalog is always up-to-date. (generated by Nexus).

  4. Sep 13, 2013

    In case it will be of help to anyone else - there are currently a couple of severe bugs in the magnolia 5 maven project archetype which will cause a lot of frustration for anyone trying to create a new project.

    the first problem is that the project pom omits a dependency of the Vaadin repository. As a result if you create a project from the archetype and attempt to build it the build will fail with an error like this :

    The POM for org.vaadin.addons:icepush:jar:0.5.3 is missing, no dependency information available
    The POM for org.vaadin.addons:cssinject:jar:2.0.3 is missing, no dependency information available
    The POM for org.vaadin.addons:gwt-graphics:jar:1.0.0 is missing, no dependency information available
    The POM for org.vaadin.addons:ckeditor-wrapper-for-vaadin:jar:7.8.3 is missing, no dependency information available
    The POM for org.vaadin.addon:easyuploads:jar:7.0.0 is missing, no dependency information available
    The POM for org.vaadin.addons:refresher:jar:1.2.1.7 is missing, no dependency information available

     

    The solution is to to add this to the repositories section of the project POM :

    vaadin repository reference

    The other problem is that Maven will complain about a missing version number for the maven-war-plugin - I'm not sure whether this has any real effect on the build, but it causes a warning to be issued for every build,  like this :

    Some problems were encountered while building the effective model for stain.org:rocamoraSite-webapp:war:1.0-SNAPSHOT
    'build.plugins.plugin.version' for org.apache.maven.plugins:maven-war-plugin is missing. @ line 30, column 21

    To sort this out, just add a version number property to the maven war plugin reference in the pom file within the web app sub folder like this :

    war plugin version number

     

    Hopefully, when these problems are sorted out an admin can delete this comment....

    1. Sep 13, 2013

      Joshua,

      Thanks for this - we track issues with the archetypes on Jira: ARCH

      The first problem is well known and should already be in there. Just got no time so far to fix it. (In part because it won't be necessary to have that fix everywhere, and in part because I've been wondering why Vaadin add-ons are not mirrored on Maven Central)

      The second problem is probably specific to Maven 3, we still use Maven 2.2, which is why we haven't seen it yet. However you're right, and it's generally good practice to add plugin version numbers in any case. It's the type of thing that people will configured via their "corporate" parent pom, though.

  5. Feb 12, 2014

    There's a dependency problem related to Admin Interface Legacy Module (version 5.0.2)  using Version 1.1 of the archetype together with Magnolia 5. Use the latest 1.2-SNAPSHOT to get it running properly. The final version 1.2 is going to be released soon.

  6. Aug 06, 2014

    Please note that https must be used to access nexus now.