maven插件1(timer-plugin)

概述

timer plugin, 提供4个goal:

  • currentTime
  • currentDate
  • currentMonth
  • currentYear

打包

命令

maven clean install

常见错误

goalPrefix MISSING

错误信息
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-plugin-plugin:3.13.1:helpmojo (help-goal) on project timer-plugin: You need to specify a goalPrefix as it can not be correctly computed -> [Help 1]

原因
自动生成的配置中,有一个属性goalPrefix,这个属性用于配置插件的缩写名,默认情况下,符合前面命名要求的时候,不需要配置.

  • maven 官方插件: maven-XXX-plugin
  • 非官方插件: XXX-maven-plugin

如果不满足上述约定,则需要手动指定goalPrefix,在当前repo 文件下,添加如下配置:

  <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-plugin-plugin</artifactId>
                <version>3.13.1</version>
                <configuration>
                    <goalPrefix>timer-plugin</goalPrefix>
                </configuration>
            </plugin>
        </plugins>
</build>

exec

命令行执行

mvn cn.jhs.maven.plugins:timer-plugin:1.0-SNAPSHOT:currentTime cn.jhs.maven.plugins:timer-plugin:1.0-SNAPSHOT:currentYear

绑定maven-phase执行

在其他的maven项目中,指定当前插件:

<build>
    <plugins>
        <plugin>
            <groupId>cn.jhs.maven.plugins</groupId>
            <artifactId>timer-plugin</artifactId>
            <version>1.0-SNAPSHOT</version>
            <executions>
                <execution>
                    <id>timer-pre-clean</id>
                    <goals>
                        <goal>currentYear</goal>
                        <goal>currentMonth</goal>
                        <goal>currentDate</goal>
                    </goals>
                    <phase>pre-clean</phase>
                </execution>
                <execution>
                    <id>timer-clean</id>
                    <goals>
                        <goal>currentTime</goal>
                    </goals>
                    <phase>clean</phase>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

best practice

添加descriptor + helpmojo

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-plugin-plugin</artifactId>
                <executions>
                    <execution>
                        <id>mojo-descriptor</id>
                        <goals>
                            <goal>descriptor</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>help-goal</id>
                        <goals>
                            <goal>helpmojo</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

后续执行命令 mvn cn.jhs.maven.plugins:timer-plugin:1.0-SNAPSHOT:help 可以看到这个plugin的完整说明.

code

CurrentDateMojo

@Mojo(name="currentDate",defaultPhase= LifecyclePhase.CLEAN)
public class CurrentDateMojo extends AbstractMojo {
    @Override
    public void execute() throws MojoExecutionException, MojoFailureException {
        getLog().info(this.getClass().getSimpleName()+"  plugin is running,current date is " + LocalDate.now().getYear());
    }
}

其它(略)在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven插件是一种可插拔的工具,可以在Maven构建过程中执行特定的任务。其中,maven-dependency-pluginmaven-surefire-plugin是两个常用的插件maven-dependency-plugin插件可以用来管理项目依赖,可以帮助我们列出项目中的依赖关系,复制依赖文件到指定目录,解压依赖文件等。常用的配置包括: - list:列出项目依赖 - copy-dependencies:将所有依赖文件复制到指定目录 - unpack:解压指定的依赖文件 maven-surefire-plugin插件则是用来执行项目的单元测试的。它可以在Maven构建过程中自动执行单元测试,并生成测试报告。常用的配置包括: - includes/excludes:指定要执行的测试类或排除的测试类 - parallel:指定测试是否并行执行 - reportsDirectory:指定测试报告生成的目录 在POM文件中配置这两个插件,可以通过以下方式: ``` <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M5</version> <configuration> <includes> <include>**/*Test.java</include> </includes> <parallel>methods</parallel> <threadCount>10</threadCount> <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory> </configuration> </plugin> </plugins> </build> ``` 以上是一个简单的POM文件中Maven插件配置maven-dependency-pluginmaven-surefire-plugin的示例,其中maven-dependency-plugin在package阶段执行复制依赖文件的任务,maven-surefire-plugin在test阶段执行单元测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值