Guide to the Core Maven Plugins – 核心Maven插件指南

最后修改: 2018年 4月 19日

1. Overview


Maven is the most commonly used build tool in the Java world. Mainly, it’s just a plugin execution framework in which all jobs are implemented by plugins.


In this tutorial, we’ll give an introduction to the core Maven plugins, providing links to other tutorials focusing on what these plugins can do and how their goals are bound to the build lifecycles.


2. Maven Build Lifecycles


Core plugins closely relate to the build lifecycles.


Maven defines three build lifecycles:  default, site and clean. Each lifecycle is composed of multiple phases, which run in order up to the phase specified in the mvn command.

Maven定义了三个构建生命周期。 默认网站清洁。每个生命周期由多个阶段组成,按顺序运行,直至mvn命令中指定的阶段。

The most important lifecycle is default, responsible for all steps in the build process, from project validation to package deployment.


The site lifecycle is in charge of building a site, showing Maven related information of the project, whereas the clean lifecycle takes care of removing files generated in the previous build.


Many phases in all three lifecycles are automatically bound to the goals of core plugins. The referenced articles will go over these goals and the built-in bindings in detail.


All plugins are enclosed in a build element of the POM:


        <!-- plugins go here -->

3. Plugins Bound to the Default Lifecycle 


The built-in bindings of the default lifecycle are dependent on the value of the POM’s packaging element. For the sake of brevity, we’ll go over bindings of the most common packaging types:  jar and war.

默认生命周期的内置绑定取决于POM的packaging元素的值。为了简洁起见,我们将介绍最常见的打包类型的绑定。 jarwar

Here’s a list of the goals that are bound to each phase of the default lifecycle in the format “phase -> plugin:goal”:


  • process-resources -> resources:resources
  • compile -> compiler:compile
  • process-test-resources -> resources:testResources
  • test-compile -> compiler:testCompile
  • test -> surefire:test
  • package -> ejb:ejb or ejb3:ejb3 or jar:jar or par:par or rar:rar or war:war
  • install -> install:install
  • deploy -> deploy:deploy

The goals above are contained in the following plugins. Follow the links for an article on each of the plugins:


4. Other Plugins


In addition to the plugins mentioned in the previous section, there are two other core plugins whose goals are bound to phases of the site and clean lifecycles:


5. Conclusion


In this article, we went over Maven build lifecycles and provided references to tutorials covering the core plugins of the Maven build tool in detail.


The code examples of most of the referenced articles can be found over on GitHub.


« Previous

The Maven Site Plugin