Maven Plugin Documentation

Introduction

How Did the Plugin Documentation Standard Form?

The plugin documentation standard was created to address the frequent complain of lack of documentation, specifically on Maven's plugins. The standard was based on the suggestion made on the maven-dev mailing list with some refinements. It is a community consensus of what basic documentation a Maven plugin should have.

Why Do We Need a Plugin Documentation Standard?

The standard was developed not as set of rules, but rather as a set of guidelines to help plugin developers better document their plugins, in order to the benefit of the users of the plugin. The standard reminds plugin developers of the important, default details that should always be documented when developing a plugin, in order to speed plugin adoption for new users.

Plugin Documentation Key

Status:
Completed In Progress Not Started or Unassigned (may be taken by someone else)

Docck:
Result when running maven-docck-plugin. The number indicated is the number of errors reported by docck. is used when it passes (0 errors) docck.

Nav:
The Navigation links complies with the plugin documentation standards. Pass Fail

Home:
The Plugin's home page complies with the documentation standards. Pass Fail

JIRA Issues:
Documentation-related open issues. Mostly from questions posted in the mailing lists.

Published:
Whether the plugin site has been published. Published Not published Unknown

Maven Distributed Plugins

Plugin Status Docck Nav Home Assigned To JIRA Issues Published
Maven Ant Plugin Vincent Siveton MANT-15
Maven AntRun plugin Allan Ramirez MANTRUN-55
Maven Archetype Plugin Franz See ARCHETYPE-45
Maven Assembly Plugin Edwin Punzalan MASSEMBLY-122
Maven Clean Plugin Edwin Punzalan MCLEAN-13
MCLEAN-14
Maven Compiler Plug-in Edwin Punzalan MCOMPILER-38
Maven Dependency Plugin Allan Ramirez MDEP-30
Maven Deploy Plug-in Allan Ramirez MDEPLOY-35
Maven DOCCK Plugin Dennis Lundberg  
Maven EAR Plugin Edwin Punzalan MEAR-32
Maven Eclipse Plugin Edwin Punzalan MECLIPSE-125
Maven EJB Plugin Pete Marvin King MEJB-17
Maven Enforcer Plugin Brian Fox  
Maven Help Plugin Maria Odea Ching MPH-17
Maven IDEA Plug-in Edwin Punzalan MIDEA-59
Maven Install Plug-in Allan Ramirez MINSTALL-27
Maven Jar Plug-in Dennis Lundberg MJAR-48
Maven One Plugin Dennis Lundberg MONE-4
Maven Plugin Plugin Maria Odea Ching MPLUGIN-23
Maven RAR Plugin Allan Ramirez MRAR-12
Maven Release Plug-in John Tolentino MRELEASE-141
Maven Resources Plug-in Franz See MRESOURCES-23
Maven SCM Plug-in Pete Marvin King MSCM-218
Maven Site Plugin Maria Odea Ching MSITE-158
Maven Source plugin Maria Odea Ching MSOURCES-9
Maven Surefire Plug-in Allan Ramirez MSUREFIRE-147
Maven WAR Plugin Pete Marvin King MWAR-48
Maven Verifier plugin Denis Cabasson MVERIFIER-2

Maven Distributed Reports/Plugins

Plugin Status Docck Nav Home Assigned To JIRA Issues Published
Maven Changelog Plugin Maria Odea Ching MCHANGELOG-40
Maven Changes Plugin Dennis Lundberg  
Maven Checkstyle Plugin Maria Odea Ching MCHECKSTYLE-49
Maven Clover Plugin Vincent Massol MCLOVER-47
Maven Javadoc Plug-in Maria Odea Ching MJAVADOC-79
Maven JXR Plug-in Maria Odea Ching MJXR-14
Maven PMD Plug-in Mike Perham MPMD-34
Maven Project Info Reports Pete Marvin King MPIR-50
Maven Surefire Report Plugin Allan Ramirez MSUREFIREREP-24

References

Navigation Standard

Use the following template for your site.xml:

Template for site.xml
<?xml version="1.0" encoding="UTF-8"?>

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<project>
  <body>
    <menu name="Overview">
      <item name="Introduction" href="index.html"/>
      <item name="Goals" href="plugin-info.html"/>
      <item name="Usage" href="usage.html"/>
      <item name="FAQ" href="faq.html"/>
      <item name="Release Notes" href="jira-report.html"/>
    </menu>

    <menu name="Examples">
      <item name="description1" href="examples/example1.html"/>
      <item name="description2" href="examples/example2.html"/>
    </menu>
  </body>
</project>

Home Page Standard

Template for index.apt
------
Introduction
------
Author
------
YYYY-MM-DD
------

~~ Licensed to the Apache Software Foundation (ASF) under one
~~ or more contributor license agreements.  See the NOTICE file
~~ distributed with this work for additional information
~~ regarding copyright ownership.  The ASF licenses this file
~~ to you under the Apache License, Version 2.0 (the
~~ "License"); you may not use this file except in compliance
~~ with the License.  You may obtain a copy of the License at
~~
~~   http://www.apache.org/licenses/LICENSE-2.0
~~
~~ Unless required by applicable law or agreed to in writing,
~~ software distributed under the License is distributed on an
~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~~ KIND, either express or implied.  See the License for the
~~ specific language governing permissions and limitations
~~ under the License.

~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/doxia/references/apt-format.html


Maven Plugin Name

  Plugin introduction, description, and other relevant information.

* Goals Overview

  General Information about the goals.

  * {{{goal.html}prefix:goal}} short description for this plugin goal.

* Usage

  General instructions on how to use the Plugin Name can be found on the {{{usage.html}usage page}}. Some more
  specific use cases are described in the examples given below. Last but not least, users occasionally contribute
  additional examples, tips or errata to the
  {{{http://docs.codehaus.org/display/MAVENUSER/Plugin+Name}plugin's wiki page}}.

  In case you still have questions regarding the plugin's usage, please have a look at the {{{faq.html}FAQ}} and feel
  free to contact the {{{mail-lists.html}user mailing list}}. The posts to the mailing list are archived and could
  already contain the answer to your question as part of an older thread. Hence, it is also worth browsing/searching
  the {{{mail-lists.html}mail archive}}.

  If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our
  {{{issue-tracking.html}issue tracker}}. When creating a new issue, please provide a comprehensive description of your
  concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason,
  entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated.
  Of course, patches are welcome, too. Contributors can check out the project from our
  {{{source-repository.html}source repository}} and will find supplementary information in the
  {{{http://maven.apache.org/guides/development/guide-helping.html}guide to helping with Maven}}. 

* Examples

  To provide you with better understanding on some usages of the Plugin Name,
  you can take a look into the following examples:

  * {{{examples/short-description1.html}Example Description One}}

  * {{{examples/short-description2.html}Example Description Two}}

FAQ Page Standard

Template for faq.fml
<?xml version="1.0" encoding="UTF-8"?>

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<faqs id="FAQ" title="Frequently Asked Questions">
  <part id="General">
    <faq id="question">
      <question>Question?</question>
      <answer>
        <p>
          Answer
        </p>
      </answer>
    </faq>
  </part>
</faqs>

Font Styles

Make the text font styles standard for:

  • goals - monospaced
    i.e. ( <<<install:install>>>)
  • parameter - monospaced
    i.e. ( <<<-DparameterName>>> )

Maven Docck Plugin currently checks if a plugin has the following:

Project Descriptor Requirements

Documentation Item Implemented Comment
modelVersion implemented by maven
groupId implemented by maven
artifactId implemented by maven
version implemented by maven
name  
description  
url  
issueManagement  
prerequisites >> maven  
inceptionYear  
mailingList WARN only
scm WARN only
organization  
plugin report  
licenses  
verify URLS  

Project Site Pages

Documentation Item Implemented Comment
site(html/apt/xdoc)  
index(html/apt/xdoc)  
usage(html/apt/xdoc)  
examples  
FAQ  

Project Site Descriptor

Documentation Item Implemented Comment
index.html link  
plugin-info.html link  
usage.html link  
faq.html link  

Plugin Javadoc Annotation Requirement

Documentation Item Implemented Comment
parameter description  
mojo description  
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Jul 20, 2006

    Denis Cabasson says:

    I'll go for the verifier plugin (seems small enough, I guess even me should be a...

    I'll go for the verifier plugin (seems small enough, I guess even me should be able to deal with it).

    dcabasson

  2. Jul 20, 2006

    Denis Cabasson says:

    Patch submitted for the maven-verifier-plugin : http://jira.codehaus.org/browse/...

    Patch submitted for the maven-verifier-plugin : http://jira.codehaus.org/browse/MVERIFIER-2

    dcabasson