0%

maven自定义插件

maven自定义插件

自定义插件的pom文件,注意打包方式为<packaging>maven-plugin</packaging>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<groupId>com.zhanghe.study</groupId>
<artifactId>test_maven_plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>

<dependencies>
<!-- 编写插件必备的依赖 -->
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.6.0</version>
</dependency>
</dependencies>

编写插件逻辑

1
2
3
4
5
6
7
8
9
10
11
12
13
// name表示插件的goal名称  defaultPhase指的是触发的生命周期
@Mojo(name = "customMojo",defaultPhase = LifecyclePhase.COMPILE)
public class CustomMojo extends AbstractMojo {

// 会获取配置文件中的变量并赋值
@Parameter
private String version;

@Override
public void execute() throws MojoExecutionException, MojoFailureException {
System.out.println("使用的版本为"+version);
}
}

将该插件打包到本地仓库或者maven私服中,就可以在其他maven项目中进行使用了

其他项目配置使用该插件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<build>
<plugins>
<plugin>
<groupId>com.zhanghe.study</groupId>
<artifactId>test_maven_plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 配置参数值 -->
<configuration>
<version>0.0.1-SNAPSHOT</version>
</configuration>

<!-- 指定什么时候进行触发 -->
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>customMojo</goal>
</goals>
</execution>
</executions>

</plugin>
</plugins>
</build>