- 在maven中,萬物皆是插件,他本身的主要功能也是依賴插件實現的,同時它也為我們提供了極其豐富的插件庫,最主要的就是https://maven.apache.org/plugins/和http://www.mojohaus.org/plugins.html。
- 插件的使用
- 在項目的pom文件中,build標簽下與一個plugins標簽,在里面可以定義多個插件;如下圖,可以看到這個maven工程里的所有插件,以及插件的功能

- 手寫一個插件
- 首先創建一個maven工程
- 把pom里的packaging標簽的值改為maven-plugin
<packaging>maven-plugin</packaging>
- 引入依賴
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.5</version>
<scope>provided</scope>
</dependency> - 創建class,繼承
AbstractMojo.class
- 重寫里面的execute方法
public void execute() throws MojoExecutionException, MojoFailureException {
System.out.println("具體業務");
} - 在類上加注解
@Mojo
- 並指定name和defaultPhase,name的值就是當前的goal,defaultPhase就是這個goal所處在的phase
@Mojo(name="lhy",defaultPhase = LifecyclePhase.PACKAGE)
- 然后你的插件就寫完了,是不是很簡單。
- 使用插件
- 在項目中引入你的插件
<build>
<plugins>
<plugin>
<groupId>com.lhy</groupId>
<artifactId>lhy-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
</plugin>
</plugins>
</build> - 然后你就可以看到了
- 在項目中引入你的插件

-
- 雙擊他就可以直接運行。或者mvn lhy:lhy 也可以運行。
- 但是有的時候我們需要傳參數,那么我們可以在插件里定義一個屬性,然后加上@Parameter注解,然后在調用的時候就可以傳入參數了
@Parameter
private String msg; - 執行命令mvn lhy:lhy -Dmsg=...就ok了
- 到目前為止,我們的一個插件基本就完成了,從開發到使用都有了,但是所有的運行都是靠命令或者雙擊,怎么讓他自動運行呢
- 其實可以在pom中配置
<build>
<plugins>
<plugin>
<groupId>com.lhy</groupId>
<artifactId>lhy-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<configuration>
<msg></msg>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>lhy</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build> - configuration配置參數
- execution配置執行的phase和goal
- 然后當我們執行插件所在的phase時就會自動執行goal
- 常用的插件
- findbugs 靜態代碼檢查
- versions 統一升級版本號
- source 打包源代碼
- assembly 打包zip、war
- tomcat7
