猿问

如何共享/传递具有应用程序属性和 pom 文件的变量

我有一个多模块 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>


米琪卡哇伊
浏览 214回答 2
2回答

ITMISS

你可以通过 jenkins&nbsp;Port Allocator Plugin做到这一点分配端口后(可以说HTTP_PORT),然后您可以将其作为命令行传递-Dstub.port=$HTTP_PORT
随时随地看视频慕课网APP

相关分类

Java
我要回答