Creating Skins

If you want to tune the way your site looks, you can use a custom skin to provide your own CSS stylesheets. If that is still not enough, you can even tweak the output templates that Maven uses to generate the site documentation.

For an in-depth discussion of site customization, please have a look at Maven: The Complete Reference, Chapter 10. Site Generation provided by Sonatype.


A skin contains the following elements:

  • Resources to copy into each project (such as images used by the CSS)
  • A couple of CSS files, containing the visual styling
  • An optional Velocity template in /META-INF/maven/site.vm for an alternate HTML rendering of the site (by default, Doxia Site Renderer's default-site.vm is used
  • Since Maven Site Plugin 3.5, an optional skin descriptor in /META-INF/maven/skin.xml containing meta-data about the skin

Maven Site Skin Archetype

maven-archetype-site-skin archetype can be used to easily create a complete new skin project, including its dedicated /META-INF/maven/site.vm.


A skin is built like any other JAR - with a packaging of jar. No additional plugins are needed.

Resources should be put in the normal src/main/resources directory.

Once the JAR is built and deployed, it can be used by projects.

Constructing the CSS

If you are interested in constructing your own CSS, it is recommended that you copy the file maven-theme.css from Maven Default Skin and modify it to suit your needs.

Customizing the HTML Output with a Velocity Template

The format of the Velocity template is currently out of scope for this document. To attempt this, start by copying default-site.vm to src/main/resources/META-INF/maven/site.vm in your project and then modify it to your needs.

For more information about how to write Velocity templates see the Velocity User Guide and Velocity Template Language Reference Guide.

Notice that Velocity 2.3 is used since Maven Site Plugin 4.0.0-M2, but version 1.7 was used previously.