开发Maven插件

  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>

筑起梦想的鸟巢,开始人生的长跑,领先每回的冲刺,

开发Maven插件

相关文章:

你感兴趣的文章:

标签云: