maven - 从另一个 Mojo 以编程方式触发 Mojo
问题描述
我可以让一个在阶段运行的 Mojointegration-test
触发另一个在阶段运行的 Mojoverify
吗?
这个问题是对我之前的问题的跟进。我扩展了frontend-maven-plugin
一个参数,该参数将集成测试的构建失败延迟到verify
阶段,以允许post-integration-test
阶段正确执行。这通常需要清理环境(关闭数据库、服务器等)。拉取请求提交可在此处获得。
该解决方案相当老套,因为它需要用户添加一个verify
执行阶段,即使它不做任何事情。相反,我希望在阶段执行以在integration-test
阶段期间自动执行 Mojo verify
(无需用户将其显式添加到 Maven 配置中)。所以以下内容:
<execution>
<id>npm run integration tests</id>
<goals>
<goal>npm</goal>
</goals>
<phase>integration-test</phase>
<configuration>
<arguments>run e2e</arguments>
<integrationTestFailureAfterPostIntegration>true</integrationTestFailureAfterPostIntegration>
</configuration>
</execution>
应该触发 e2e 测试在integration-test
阶段运行,但还需要在verify
阶段执行另一个 Mojo。
这可能吗?你会怎么做?
更新:我设法在运行时向插件添加另一个 pluginExecution,如下所示:
for (Plugin plugin : project.getBuildPlugins()) {
if("com.github.eirslett".equals(plugin.getGroupId()) && "frontend-maven-plugin".equals(plugin.getArtifactId())){
PluginExecution verifyExecution = new PluginExecution();
verifyExecution.addGoal("verify");
verifyExecution.setId("verify integration tests");
verifyExecution.setPhase("verify");
plugin.addExecution(verifyExecution);
}
}
但这似乎不会影响运行时执行。目标是在阶段执行验证的自定义验证Mojoverify
解决方案
推荐阅读
- c++ - 程序没有产生预期的结果
- c# - 我想每年从三月开始改变学年
- node.js - 如何从 mongoose 查询返回变量,它返回 Promise {< pending >}
- mongodb - macos mongodb 服务正在运行,但未连接到服务器,mongo 控制台不会加载
- jquery - Fancybox 与 Owl 轮播在同一页面上分开画廊?
- gis - 将 MapInfo TAB 转换为 MBTiles 坐标
- vb.net - Visual Studio 正在扩展通配符项目文件在构建时包含
- c++ - 找出 QCursor::setPos 是否有效果
- c# - 适用于 Windows 10 的 C# 停靠代码栏
- c# - 当我们使用 .net core 3.1 时,如何正确地进行 dotnet 发布?