我有一个多模块 spring-boot 项目,在我的应用程序的集成测试之前,我启动了另一个子模块(它是由另一个 spring boot 应用程序制作的存根)你可以看到它附加到“预集成测试”,它是最后工作正常。
Parent Pom
|
|----myRealApp module(spring boot app)
|----stub module(This is also a spring-boot app)
我的问题是,有没有办法随机化并共享此端口(未固定为 8090),因此 Jenkins 服务器上的并发构建可以运行测试并且不会失败,因为地址已在使用中。
我知道我可以在 spring 属性文件中生成随机数/端口。但是找不到将其传递给 Pom 的方法。
application-test.properties myRealApp的:
stub.port=8090
stub.url=http://localhost:${stub.port}/stub/api/v1/domains/
myRealApp 的 Pom:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>${spring.boot.mainclass}</mainClass>
</configuration>
<executions>
<execution>
<id>start-stub</id>
<configuration>
<arguments>
<argument>--server.port=8090</argument>
</arguments>
<mainClass>io.swagger.Stub</mainClass>
<classesDirectory>../my-stub/target/classes</classesDirectory>
</configuration>
<goals>
<goal>start</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
ITMISS
相关分类