1. Maven 插件
官方插件命名格式:maven-<xxx>-plugin
非官方插件命名格式:<xxx>-maven-plugin
2. 插件开发
2.1 创建项目
插件本身也是Maven项目
项目骨架选择 org.apache.maven.archetypes:maven-archetype-mojo
pom.xml 分析
打包方式设置为 maven-plugin
<groupId>org.example</groupId>
<artifactId>demo-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
Maven 插件依赖的核心包 maven-plugin-api
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.5.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
MyMojo.java 文件
/**
* Goal which touches a timestamp file.
*
* @goal 指定插件的命名,同注解 @Mojo
* @phase 绑定插件执行的生成周期
*/
@Mojo(name = "myMojo")
public class MyMojo extends AbstractMojo {
@Parameter(name = "name", defaultValue = "xing")
private String name;
/**
* 插件入口类
*/
public void execute() throws MojoExecutionException {
getLog().info("Hello " + name);
}
}
需要继承抽象类 AbstractMojo.java
2.2 插件打包
Install 上传到本地 maven 仓库
3. 使用自定义插件
3.1 在项目中添加插件
<build>
<plugins>
<plugin>
<groupId>org.example</groupId>
<artifactId>demo-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
</plugin>
</plugins>
</build>
双击 dmeo:myMojo
控制台会输出:
可配置 Parameter 参数
<plugin>
<groupId>org.example</groupId>
<artifactId>demo-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<configuration>
<name>World</name>
</configuration>
</plugin>
此时控制台打印 [INFO] Hello World
3.2 附到生命周期
在构建生命周期的 package 阶段,目标 myMojo自动执行
<plugin>
<groupId>org.example</groupId>
<artifactId>demo-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>myMojo</goal>
</goals>
</execution>
</executions>
<configuration>
<name>World</name>
</configuration>
</plugin>
网友评论