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

组织。springframework。启动:spring boot maven插件:1.5.10。发布:重新打包失败:无法找到主类

邵骁
2023-03-14

我有以下项目结构:

parent pom
   |
   - Core module - pom
   - Dist - pom
   - Integration test - pom

Spring boot主类位于核心模块中。集成测试将进入集成测试文件夹。

我正在尝试使用spring-boot-maven-plugin进行集成测试。我在集成测试模块中对其进行了以下pom配置。开始类属性在父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安装中遇到以下错误:

[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)之前没有启动-

问题:

  1. 这个项目结构是组织集成测试的最佳方式吗?
  2. 我如何以及在哪里正确地将主类的路径提供给spring-boot-maven-plugin?即使我在集成模块或父pom中给出它,即使在给出您通常会做的相对路径之后,它也不起作用(例如.../core-mode/)
  3. 测试类本身的maven-故障安全插件和Spring注释似乎足以运行集成测试。那么首先,集成测试和Spring bootmaven插件之间有任何关系吗?除了打包到可执行文件中之外,Spring bootmaven插件还需要什么。我有这种困惑,因为它有像开始预集成测试这样的目标

PS:我检查了一些类似问题的问题,但没有一个回答我为给定项目结构提出的问题。

共有1个答案

孙化
2023-03-14

我刚刚遇到了和你一样的错误(重新打包失败:无法找到主类),试图将一些Spring代码泛化到一个通用的Spring Boot项目中。事实证明这是不可能的,因为Spring Boot项目需要一个带有main方法的类。

我使用直接依赖于我需要的Spring框架模块来解决我的问题,也许您可以在您的联调项目中这样做。

然而,我不知道您试图在单独的项目中运行哪种测试,但是关于核心模块的测试必须在核心模块本身中,使用Spring测试,而不是在单独的项目中。(必要时使用模拟)。

希望这有帮助。

 类似资料: