当前位置: 首页 > 知识库问答 >
问题:

Maven:如何在同一阶段按特定顺序多次执行目标

滕渝
2023-03-14

我希望我的“预集成测试”阶段是以下目标的执行,按照这个特定的顺序。

阶段:预集成测试

  • 获取一个Spring Bootjar(maven-依赖-插件:复制)
  • get-a-port(build-helper-maven-plugin:保留网络端口)
  • 显示端口(maven-antrun-plugin:运行#1)
  • 启动服务器(exec-maven-plugin)
  • 等待启动(maven-antrun-plugin: run#2)

有没有办法使用Maven 3做到这一点?

我面临的问题是“maven-antrun-plugin: run”1

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <id>display-port</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target>
                                <echo>Displaying value of 'tomcat.http.port' property</echo>
                                <echo>[tomcat.http.port] ${tomcat.http.port}</echo>
                            </target>
                        </configuration>
                    </execution>
                    <execution>
                        <id>wait-for-startup</id>
                        <phase>pre-integration-test</phase>
                        <configuration>
                            <target>
                                <sleep seconds="10" />
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

现在,我发现做到这一点的唯一方法是在pom文件中复制“maven-antrun-plugin:”plugin元素。但这给了我一个警告

'build.plugins.plugin.(groupId:artifactId)' must be unique but found duplicate declaration

对于这个问题的范围,我不是在寻找解决方法,例如更改“显示端口”或“等待启动”的插件,或者更改目标的阶段。

我只想知道我想做的事情是否可能。

共有1个答案

汲利
2023-03-14

如果多个执行具有相同的阶段,那么第一个被执行的将是ID为default-某物的内置执行(例如maven-compiler-plugin),然后其他执行将按照它们在您的pom文件中出现的顺序进行。

 类似资料:
  • 通常,您可以有多个进程,但有时在某些操作中,我们需要确保在执行前一个进程之后执行一个进程。 我们如何在卡蒙达实现它?试图找到类似进程依赖关系的东西(因此进程在上一个进程完成后才开始),但找不到任何东西:( 我考虑在process中添加一些变量(比如),并检查指定的process是否已经完成,但也许会有更好的解决方案。

  • 我使用maven failsafe插件触发testng套件,其配置与 但是套件或其中的测试没有按照正确的顺序执行。有没有办法规定套房应按以下顺序执行 某个套房。xml 另一套。xml 还有一套。xml 我不关心套件中测试的执行顺序,但只希望在前一个套件完成后执行一个套件。是否有一些配置可用于实现相同的功能?

  • 如何按特定顺序运行quarkus测试?通常我们有@InSequence注释(来自arquillian IIRC),我们可以实现这一点。 但是我没有找到任何类似的Quarkus在"org.junit.jupiter.api"软件包提供Quarkus-朱尼5。 它将以一个替代的顺序运行,我试图使用org.junit.jupiter.api.顺序与@Testmetodorder(方法命令。nnotati

  • 问题内容: 我有一些测试UI的测试,也可以用来创建数据。 单独的一组测试依赖于此数据,这意味着这些测试必须仅在第一组运行之后才能运行。 我知道要运行一组或使用标签运行它们,但是如何按特定顺序运行它们呢? 问题答案: Nightwatch将按顺序运行特定文件中的每个测试,因此(一个简单的)解决方案是将每个测试按您希望它们运行的​​顺序放入同一文件中。 如果单个文件的测试太多,这将变得很麻烦。要解决此

  • 在我的示例项目中,我尝试在应用程序启动时做一些初始化工作。 Java 16 Vertx 4.1.0 检查完整的项目代码。 但它并没有像预期的那样工作。 没有像Reactor那样的方法 我找不到一种有效的方法来按顺序执行它们。 更新时间: 我按照建议更改了代码。 并在控制台中获取以下日志。 如何在输入打印结果之前确保插入块中的所有未来都已完成。

  • 问题内容: 如果我有这样的数据: 我如何将命令连接成这样: 我在下面使用了此查询,但命令列的顺序不依其顺序号而定: 任何意见和建议将不胜感激。^ _ ^ 问题答案: 永远不要使用。阅读为什么不在Oracle中使用WM_CONCAT函数? 请参阅本主题https://stackoverflow.com/a/28758117/3989608。 它没有记录,并且依赖的任何应用程序一旦升级到后都将无法工作