Java 如何通过命令行在特定阶段和特定配置下执行maven插件?
我制作了一个maven插件,我希望通过命令行执行插件,而不改变基准项目中的任何内容(例如pom.xml)。目前,我正在使用Java 如何通过命令行在特定阶段和特定配置下执行maven插件?,java,maven,maven-3,maven-plugin,Java,Maven,Maven 3,Maven Plugin,我制作了一个maven插件,我希望通过命令行执行插件,而不改变基准项目中的任何内容(例如pom.xml)。目前,我正在使用mvn-groupId:artifactId:version:goal-test(我想在测试的同时执行我的插件)。但问题是: 我不知道如何通过命令行配置我的插件。例如,如果允许更改pom,则在中可以设置许多用户定义的配置,例如: ... ... ... 真的 com/foo/bar ... 如何使用命令行在中配置这些属性 我想在特定阶段启动插件(特别是在Lifecycl
mvn-groupId:artifactId:version:goal-test
(我想在测试的同时执行我的插件)。但问题是:
中可以设置许多用户定义的配置,例如:
...
...
...
真的
com/foo/bar
...
如何使用命令行在
中配置这些属性
LifecyclePhase.PROCESS\u TEST\u类中)。例如,My mojo类的实现方式如下:
@Mojo(name=“goal”,defaultPhase=LifecyclePhase.PROCESS\u TEST\u CLASSES,requiresDependencyResolution=ResolutionScope.TEST,threadSafe=true)
@执行(阶段=LifecycleBase.PROCESS\u TEST\u类)
公共类myMojo扩展了MyAbstractMojo{
...
}
当我使用mvn-groupId:artifactId:version:goal-test
或mvn-test-groupId:artifactId:version:goal
时,我遗憾地发现我的插件是在错误的阶段启动的。如何解决这个问题?有没有办法在这些命令行中显式声明desire阶段
关于第一个问题: 您可以读取插件中的属性,并且可以在命令行上使用
-Dproperty=value
设置属性
关于第二个问题:
如果直接在命令行上调用插件(如groupId:artifactId:version:goal
),它不属于任何阶段。所以如果你跑
mvn组ID:artifactId:version:goal test
首先运行插件,然后是从开始到测试的所有阶段,如果运行
mvn测试组ID:artifactId:version:goal
然后首先运行到test
的所有阶段,然后运行插件
您不能在命令行上为插件指定阶段。是否有办法在阶段
过程\u测试\u类
中执行我的插件目标?我认为PROCESS\u TEST\u CLASSES
是TEST
的一个中间阶段。是的,但只能通过将您的插件添加到POM。如果您想在调用mvn TEST
时运行的其他插件之间运行插件,那么您可能必须显式调用所有插件,也就是说,mvn首先插入您的插件,然后插入第二个插件,而不是使用test
。