# 插件机制
Maven 本质上是一个插件的框架、平台。任何一个 Maven 动作(即,命令)都是由具体的插件去完成的。
例如:
mvn compile 这个命令,就是由 maven-compiler-plugin 插件提供的。
mvn test` 这个命令,就是由 maven-surefire-plugin 插件提供的。
mvn package 这个命令,就是由 maven-jar-plugin / maven-war-plugin 插件提供的。
Maven 除了提供了大量的官方插件外,还可以『安装』第三方插件。
插件配置的依赖声明整体结构(其它无关元素略。另外,build 习惯性在 dependencies 的后面):
project
├── dependencies
└── build
└── plugins
├── plugin
├── plugin
├── ...
└── plugin
# 1. 官方插件:Compile 插件
通常,官方插件都是默认激活使用的。一般,我们不会通过自定义的配置去覆盖默认配置。
主要包含如下元素:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>...</plugin>
<plugin>...</plugin>
<plugin>...</plugin>
<plugins>
</build>
# 2. Tomcat 7 插件
tomcat 7 插件是一个 tomcat 7 容器的裁剪、精简版,并且它还提供了一个 tomcat7:run 命令来用这个裁剪版的运行当前项目。
我们在开发过程中 tomcat7-maven-plugin 就能运行当前项目,查看运行结果。
<build>
<plugins>
<plugin>
<!-- 配置插件 -->
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/demo</path>
<port>8080</port>
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
<plugin>...</plugin>
<plugin>...</plugin>
<plugin>...</plugin>
</plugins>
</build>
警告
有 tomcat 8 本的 maven 插件(即,一个 tomcat 8 容器的裁剪、精简版),但是中央仓库中并没有。所以,如果想要使用 tomcat8-maven-plugin 插件需要自己额外配置下载地址,后续专项讲解。