1. 创建一个Maven项目,具体怎么创建略。

  2. 将pom.xml文件的packaging 改为maven-plugin

    <packaging>maven-plugin</packaging>
    
  3. pom.xml中引入插件依赖

    <dependencies>
            <dependency>
                <groupId>org.apache.maven.plugin-tools</groupId>
                <artifactId>maven-plugin-annotations</artifactId>
                <version>3.5.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-plugin-api</artifactId>
                <version>3.5.4</version>
            </dependency>
        </dependencies>
    
  4. 定义一个类继承AbstractMojo,实现excute方法

    public class ZqwMojo extends AbstractMojo {
        public void execute() throws MojoExecutionException, MojoFailureException {
            System.out.println("我自定义的插件lalalalala!!!!!!!!!!!!!!!!");
        }
    }
    
  5. 在上面的类上定义Mojo注解,name代表goal,defaultPhase是默认的phase

    @Mojo(name = "zqw", defaultPhase = LifecyclePhase.PACKAGE)
    
  6. 运行mvn clean install 将插件安装到本地仓库,当然也可以deploy到私服

  7. 新建一个模块或工程,pom.xml中引入刚才自定义的插件

     <build>
            <plugins>
                <plugin>
                    <groupId>com.zqw</groupId>
                    <artifactId>maven-plugin-demo</artifactId>
                    <version>1.0-SNAPSHOT</version>
                </plugin>
            </plugins>
        </build>
    
  8. 刷新maven或发现在新定义的模块或工程中,有了我们自定义的插件。
    maven自定义插件
    运行会发现有了我们刚才System.out.println的输出

  9. 现在这个简单的插件就算完成了,当运行demo:zqw时运行package 这个phase,并输出内容。但是当我们运行mvn package的时候是不会输出的。如果想让package的时候也行我们的插件,要配置如下:

    	<build>
    	        <plugins>
    	            <plugin>
    	                <groupId>com.zqw</groupId>
    	                <artifactId>maven-plugin-demo</artifactId>
    	                <version>1.0-SNAPSHOT</version>
    	                <executions>
    	                    <execution>
    	                        <phase>package</phase>
    	                        <goals>
    	                            <goal>zqw</goal>
    	                        </goals>
    	                    </execution>
    	                </executions>
    	            </plugin>
    	        </plugins>
    	    </build>
    	```
    

这样运行package就会输出我们的内容了

  1. 向插件中传入参数,在插件类处定义@Paramater

    ```
    @Parameter
        private String msg;
        public void execute() throws MojoExecutionException, MojoFailureException {
            System.out.println(msg);
            System.out.println("共有Java文件数目:" + javaCount());
        }
    ```
    

    在调用处配置参数

    ```
     <build>
            <plugins>
                <plugin>
                    <groupId>com.zqw</groupId>
                    <artifactId>mvn-plugin</artifactId>
                    <version>1.0-SNAPSHOT</version>
                    <configuration>
                        <msg>lalalalalalala</msg>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>count</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    ```
    

相关文章:

  • 2021-04-08
  • 2021-08-11
  • 2021-07-24
  • 2021-10-23
  • 2020-05-23
  • 2018-06-09
  • 2021-10-04
猜你喜欢
  • 2021-11-07
  • 2021-11-01
  • 2021-10-04
  • 2022-01-17
  • 2021-07-31
  • 2021-10-18
  • 2021-08-12
相关资源
相似解决方案