zoukankan      html  css  js  c++  java
  • 开发Maven插件

      Mojo: Maven plain Old Java Object

    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>,输出Welcome
    11  * mvn com.sample.myplugin:hello-maven-plugin:1.0-SNAPSHOT:sayhi -Dsayhi.greeting=hello
    12  * 未配置<greeting>Welcome</greeting>时输出hello
    13  */
    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     @Override
    23     public void execute() throws
    24             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>
  • 相关阅读:
    hdu_5855_Less Time, More profit(二分+最大权闭合图)
    hdu_5832_A water problem(模拟)
    poj_3261_Milk Patterns(后缀数组)
    [bzoj1072][SCOI2007]排列(状态压缩DP)
    [bzoj1597][USACO2008]土地购买(DP斜率优化/四边形优化)
    [bzoj1293][SCOI2009]生日礼物(单调队列)
    [bzoj 2463]谁能赢呢?(博弈论)
    矩阵快速幂优化递推总结
    [bzoj1563][NOI2009]诗人小G(决策单调性优化)
    [bzoj1821][JSOI2010]部落划分(贪心)
  • 原文地址:https://www.cnblogs.com/bigshark/p/7955998.html
Copyright © 2011-2022 走看看