maven 所有的功能都是基于插件的。maven默认提供了很多插件,不过你也可以自己定义插件,来扩展maven。
1: 用maven-archetype-plugin 来创建一个插件项目。
<packaging>maven-plugin</packaging>
默认会创建一个例子。
/**
* @goal touch
*/
public class MyMojo
extends AbstractMojo
{
public void execute()
throws MojoExecutionException
{
getLog().info("==============rrrrrrrrrrrrrrrrrrrrrr=======================");
}
}
@goal touch 生命了这个插件的目标为:touch
2:将这个插件install 安装到本地。
到目前为止,插件已经开发、部署好了。接下来就是如何调用。
调用有两种, 先说第一种。
直接调用该插件
需要构建的项目目录>mvn groupId : artifactId :version :touch(目标)
第二种 把该插件放到生命周期中,在构建的过程中自动调用。
需要在构建的项目pom.xml中添加
<build>
<plugins>
<plugin>
<groupId>插件的groupId</groupId>
<artifactId>插件的artifactId</artifactId>
<version>插件的version</version>
<executions>
<execution>
<id>my-plugin-test</id>
<phase>verify</phase> 绑定到生命周期的哪个阶段
<goals>
<goal>touch</goal> 绑定的插件目标
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
需要构建的项目目录>mvn clean install
这样在intall这个项目的时候,刚才自定义的插件就直接运行了。
自定义插件涉及到了几个概念:
1:插件生命周期。
生命周期,有三套
clean default site
clean
pre-clean clean post-clean
default(这里只写几个主要的)
validate initialize complie test package verify install deploy
site
pre-site site post-site
2:插件的目标。
声明这个插件有哪些功能(接口)