Maven is - at its heart - a plugin execution framework; all work is done by plugins. Looking for a specific goal to execute? This page lists the core plugins and others.
To see the most up-to-date list browse the Maven repository at http://repo1.maven.org/maven2/ , specifically the org/apache/maven/plugins subfolder. (Plugins are organized according to a directory structure that resembles the standard Java package naming convention)
| Plugin | Version | Description | Source Repository | Issue Tracking |
|---|---|---|---|---|
| core plugins | Plugins corresponding to default core phases (ie. clean, compile). They may have muliple goals as well. | |||
| clean | 2.2 | Clean up after the build. | SVN | JIRA |
| compiler | 2.0.2 | Compiles Java sources. | SVN | JIRA |
| deploy | 2.3 | Deploy the built artifact to the remote repository. | SVN | JIRA |
| install | 2.2 | Install the built artifact into the local repository. | SVN | JIRA |
| resources | 2.2 | Copy the resources to the output directory for including in the JAR. | SVN | JIRA |
| site | 2.0-beta-6 | Generate a site for the current project. | SVN | JIRA |
| surefire | 2.4.2 | Run the Junit tests in an isolated classloader. | SVN | JIRA |
| verifier | 1.0-beta-1 | Useful for integration tests - verifies the existence of certain conditions. | SVN | JIRA |
| packaging types / tools | These plugins relate to packaging respective artifact types. | |||
| ear | 2.3.1 | Generate an EAR from the current project. | SVN | JIRA |
| ejb | 2.1 | Build an EJB (and optional client) from the current project. | SVN | JIRA |
| jar | 2.2 | Build a JAR from the current project. | SVN | JIRA |
| rar | 2.2 | Build a RAR from the current project. | SVN | JIRA |
| war | 2.1-alpha-1 | Build a WAR from the current project. | SVN | JIRA |
| shade | 1.0.1 | Build an Uber-JAR from the current project, including dependencies. | SVN | JIRA |
| reporting | Plugins which generate reports, are configured as reports in the POM and run under the site generation lifecycle. | |||
| changelog | 2.1 | Generate a list of recent changes from your SCM. | SVN | JIRA |
| changes | 2.0 | Generate a report from issue tracking or a change document. | SVN | JIRA |
| checkstyle | 2.1 | Generate a checkstyle report. | SVN | JIRA |
| clover | 2.4 | Generate a Clover report. NOTE: Moved to Atlassian.com | SVN | JIRA |
| doap | 1.0-beta-1 | Generate a Description of a Project (DOAP) file from a POM. | SVN | JIRA |
| docck | 1.0-beta-2 | Documentation checker plugin. | SVN | JIRA |
| javadoc | 2.4 | Generate Javadoc for the project. | SVN | JIRA |
| jxr | 2.1 | Generate a source cross reference. | SVN | JIRA |
| pmd | 2.3 | Generate a PMD report. | SVN | JIRA |
| project-info-reports | 2.0.1 | Generate standard project reports. | SVN | JIRA |
| surefire-report | 2.4.2 | Generate a report based on the results of unit tests. | SVN | JIRA |
| tools | These are miscellaneous tools available through Maven by default. | |||
| ant | 2.0 | Generate an Ant build file for the project. | SVN | JIRA |
| antrun | 1.1 | Run a set of ant tasks from a phase of the build. | SVN | JIRA |
| archetype | 2.0-alpha-2 | Generate a skeleton project structure from an archetype. | SVN | JIRA |
| assembly | 2.2-beta-2 | Build an assembly (distribution) of sources and/or binaries. | SVN | JIRA |
| dependency | 2.0 | Dependency manipulation (copy, unpack) and analysis. | SVN | JIRA |
| enforcer | 1.0-alpha-3 | Environmental constraint checking (Maven Version, JDK etc), User Custom Rule Execution. | SVN | JIRA |
| gpg | 1.0-alpha-4 | Create signatures for the artifacts and poms. | SVN | JIRA |
| help | 2.0.2 | Get information about the working environment for the project. | SVN | JIRA |
| invoker | 1.1 | Run a set of Maven projects and verify the output. | SVN | JIRA |
| one | 1.2 | A plugin for interacting with legacy Maven 1.x repositories and builds. | SVN | JIRA |
| patch | 1.0 | Use the gnu patch tool to apply patch files to source code. | SVN | - |
| plugin | 2.4 | Create a Maven plugin descriptor for any Mojo's found in the source tree, to include in the JAR. | SVN | JIRA |
| release | 2.0-beta-7 | Release the current project - updating the POM and tagging in the SCM. | SVN | JIRA |
| remote-resources | 1.0 | Copy remote resources to the output directory for inclusion in the artifact. | SVN | JIRA |
| repository | 2.0 | Plugin to help with repository-based tasks. | SVN | JIRA |
| scm | 1.0 | Generate a SCM for the current project. | SVN | JIRA |
| source | 2.0.4 | Build a JAR of sources for use in IDEs and distribution to the repository. | SVN | JIRA |
| stage | 1.0-alpha-1 | Assists with release staging and promotion. | SVN | JIRA |
| IDEs | Plugins that simplify integration with integrated developer environments. | |||
| eclipse | 2.5.1 | Generate an Eclipse project file for the current project. | SVN | JIRA |
| idea | 2.1 | Create/update an IDEA workspace for the current project (individual modules are created as IDEA modules) | SVN | JIRA |
There are also some sandbox plugins into our source reposity .
There are also many plug-ins available at the Mojo project at Codehaus.
To see the most up-to-date list, browse the Codehaus repository at http://repository.codehaus.org/ , specifically the org/codehaus/mojo subfolder. Here are a few common ones:
| Plugin (see complete list with version ) | Description |
|---|---|
| build-helper | Attach extra artifacts and source folders to build. |
| castor | Generate sources from an XSD using Castor. |
| javacc | Generate sources from a JavaCC grammer. |
| jdepend | Generate a report on code metrics using JDepend. |
| native | Compiles C and C++ code with native compilers. |
| sql | Executes SQL scripts from files or inline. |
| taglist | Generate a list of tasks based on tags in your code. |
A number of other projects provide their own Maven plugins. This includes:
| Plugin | Description |
|---|---|
| cargo | Start/stop/configure J2EE containers and deploy to them. |
| jaxme | Use the JaxMe JAXB implementation to generate Java sources from XML schema. |
| jetty | Run a Jetty container for rapid webapp development. |
| jalopy | Use Jalopy to format your source code |