Mojo: Maven plainOldJavaObject
1、插件命名规则:maven-<yourplugin>-plugin是Maven的保留字段,不允许使用,我们可以用<myplugin>-maven-plugin来命名自己开发的插件。
2、自定义插件代码,注意pom文件的packaging类型是maven-plugin,否则无法识别为插件类型。
1 import org.apache.maven.plugin.AbstractMojo; 2 import org.apache.maven.plugin.MojoExecutionException; 3 import org.apache.maven.plugins.annotations.Mojo; 4 import org.apache.maven.plugins.annotations.Parameter; 5 6 /** 7 * 支持的命令: 8 * mvn com.sample.myplugin:hello-maven-plugin:1.0-SNAPSHOT:sayhi 9 * 默认输出Hello World!10 * 当配置了<greeting>Welcome</greeting>,输出Welcome11 * mvn com.sample.myplugin:hello-maven-plugin:1.0-SNAPSHOT:sayhi -Dsayhi.greeting=hello12 * 未配置<greeting>Welcome</greeting>时输出hello13 */14 @Mojo(name = "sayhi")15 public class GreetingMojo extends AbstractMojo {16 17 // 参数,可以用参数表达式${project.version}18 // 不同的参数类型的pom配置也不同19 @Parameter(property = "sayhi.greeting", defaultValue = "Hello World!")20 private String greeting;21 22 @Override23 public void execute() throws24 MojoExecutionException {25 getLog().info(greeting);26 }27 }
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.sample.myplugin</groupId> 8 <artifactId>hello-maven-plugin</artifactId> 9 <version>1.0-SNAPSHOT</version>10 <packaging>maven-plugin</packaging>11 19 <dependencies>20 <dependency>21 <groupId>org.apache.maven</groupId>22 <artifactId>maven-plugin-api</artifactId>23 <version>3.0</version>24 </dependency>25 26 <!-- @Mojo注解的依赖包 -->27 <dependency>28 <groupId>org.apache.maven.plugin-tools</groupId>29 <artifactId>maven-plugin-annotations</artifactId>30 <version>3.4</version>31 <scope>provided</scope>32 </dependency>33 </dependencies>34 35 <build>36 <plugins>37 <plugin>38 <!-- 使用自定义插件-->39 <groupId>com.sample.myplugin</groupId>40 <artifactId>hello-maven-plugin</artifactId>41 <version>1.0-SNAPSHOT</version>42 <configuration>43 <!-- greeting 是 @Parameter注解的参数-->44 <greeting>Welcome</greeting>45 </configuration>46 </plugin>47 </plugins>48 </build>49 </project>
筑起梦想的鸟巢,开始人生的长跑,领先每回的冲刺,