我有以下项目结构:
parent pom
|
- Core module - pom
- Dist - pom
- Integration test - pom
Spring boot主类是在核心模块中。集成测试将进入集成测试文件夹。
我正在尝试使用spring-boot-maven-plugin进行集成测试。 我在集成测试模块中为相同的pom配置做了以下操作。 start-class属性在父pom中设置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>${start-class}</mainClass>
<layout>JAR</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>post-integration-test</id>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
但是我在父pom上的mvn clean install上遇到以下错误:
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.10.RELEASE:start (pre-integration-test) on pro
ject:Spring应用程序在配置的超时之前没有启动(30000ms - &gt; [Help 1] [ERROR]
问题:
PS:我已经检查了几个类似问题的问题,但没有人回答我对给定项目结构提出的问题。
答案 0 :(得分:0)
我遇到了与(重新打包失败:无法找到主类)相同的错误尝试将一些Spring代码推广到一个常见的Spring启动项目中。 事实证明,由于Spring引导项目需要一个带有main方法的类,因此无法实现。
我使用直接依赖关系解决了我需要的Spring框架模块的问题,也许你可以在集成测试项目中做到这一点。
但是,我不知道你试图在单独的项目中运行什么样的测试,但是关于核心模块的测试必须在核心模块本身,使用Spring测试,而不是在单独的项目中。 (在需要的地方使用模拟)。
希望这有帮助。