如何通过命令行在特定阶段和特定配置下执行Maven插件?

问题描述

我已经制作了一个Maven插件,并且我希望通过命令行执行该插件,而无需在基准测试项目中进行任何更改(例如pom.xml)。当前,我正在使用mvn groupId:artifactId:version:goal test(我想在测试中执行我的插件)。但是这里有问题:

  1. 我不知道如何通过命令行配置我的插件。例如,如果允许更改pom,则<configuration>中可以设置许多用户定义的配置,例如:

    <plugin>
        <groupId>...</groupId>
        <artifactId>...</artifactId>
        <version>...</version>
        <configuration>
            <debug>true</debug>
            <packageNamePrefix>com/foo/bar</packageNamePrefix>
        </configuration>
        <executions>
            <execution>
                <goals>
                    <goal>...</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    

    如何使用命令行在<configuration>中配置那些属性?

  2. 我想在特定阶段(特别是在LifecyclePhase.PROCESS_TEST_CLASSES中)启动我的插件。例如,我的mojo类的实现方式如下:

    @Mojo(name = "goal",defaultPhase = LifecyclePhase.PROCESS_TEST_CLASSES,requiresDependencyResolution = ResolutionScope.TEST,threadSafe = true)
    @Execute(phase = LifecyclePhase.PROCESS_TEST_CLASSES)
    public class myMojo extends MyAbstractMojo {
        ...
    }
    

    当我使用mvn groupId:artifactId:version:goal testmvn test groupId:artifactId:version:goal时,我很遗憾地发现我的插件是在错误的阶段启动的。如何解决?有没有办法在这些命令行中明确声明期望阶段?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)