Java 在集成测试之前运行activemq的Maven命令

Java 在集成测试之前运行activemq的Maven命令,java,maven,testing,jms,activemq,Java,Maven,Testing,Jms,Activemq,我需要在maven clean安装中运行ActiveMQ,以便它启动ActiveMQ,然后运行我的测试。我已经将插件包含在pom.xml中,并添加了用于配置mq详细信息的mq配置文件。当我在一个控制台上运行activeMq,在其他控制台上运行maven clean install(在两个单独的控制台上运行两个单独的命令)时,它成功运行,并且所有测试都通过。但是有没有一种方法可以在同一个控制台上使用1个命令运行activemq和clean install?基本上,我希望当我进行mvn清理测试安装时

我需要在maven clean安装中运行ActiveMQ,以便它启动ActiveMQ,然后运行我的测试。我已经将插件包含在pom.xml中,并添加了用于配置mq详细信息的mq配置文件。当我在一个控制台上运行activeMq,在其他控制台上运行maven clean install(在两个单独的控制台上运行两个单独的命令)时,它成功运行,并且所有测试都通过。但是有没有一种方法可以在同一个控制台上使用1个命令运行activemq和clean install?基本上,我希望当我进行mvn清理测试安装时,它应该首先自动启动mq,然后继续测试

我尝试过使用类似于mvn-activemq:run-clean-test-installmvn-clean-test-install-activemq:run的命令。但它要么进行干净的安装,要么运行activemq


如何组合这两个命令(activemq:runmvn clean test install)?

使用
构造附加maven目标和插件。

<build>   
    <plugins>
        <plugin>
            <groupId>org.apache.activemq.tooling</groupId>
            <artifactId>maven-activemq-plugin</artifactId>
            <version>...</version>
            <executions>
                <execution>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <phase>process-test-classes</phase> <!-- or other phase before the test phase -->
                </execution>
            </executions>    
        </plugin>
    </plugins>
</build>

org.apache.activemq.tooling
maven-activemq插件
...
跑
过程测试类

完美。。。那么我该如何引用下面的“预集成测试”阶段呢?你不知道。看这张照片。该阶段自动成为默认构建生命周期的一部分,并将在您手动执行的测试阶段之前自动执行。我明白了。。。这是有道理的。。现在,我的activemq在我成功添加它之前已运行。但在运行时添加上述行后,我得到以下异常:-“Plugin org.apache.activemq.tooling:maven activemq Plugin:5.1或其一个依赖项无法解析:未能在本地存储库中缓存org.apache.activemq.tooling:maven activemq Plugin:jar:5.1,在XXX-m2-repo的更新间隔结束或强制更新之前不会重新尝试解析->“非常感谢你的帮助。我非常感激。它现在可以工作了,我的测试正在使用activeMQ实例来运行集成测试。我正在使用uri:-“tcp://localhost:61616?useJmx=false&;persistent=false&;fork=true”,并在my pom.xml中将阶段作为“预集成测试”。我删除了camel和jetty依赖项,因为我不需要它。唯一的问题是,当任何消息被传输到队列时,我都会看到日志,并且我会看到各种端口号,而不是616。。例如,tcp://127.0.0.1:49921, tcp://127.0.0.1:49920, tcp://127.0.0.1:49921/49827/49829 等等,这被认为是有效的吗?我这样问是因为如果我在一个单独的实例中运行activeMQ,每次都会得到61616,并且它不使用任何其他端口。