@ContextConfiguration 无法从另一个模块找到类

问题描述 投票:0回答:1

我有一个包含多个模块的大型 java Spring 项目。我决定将 Spring 测试的某些部分从模块

server
移动到新模块
server-test
中,以便逻辑上拆分它们并让 Gradle 处理它们。

我更新了 build.gradle、settings.gradle 和所有依赖项,但是

@ContextConfiguration
无法从另一个模块找到主类。

import com.data.server.MainServerApp

@ContextConfiguration(classes = MainServerApp.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, properties="spring.cloud.config.enabled=false")
class SuperTest extends Specification {
 ... ... ...
}

我运行

gradle clean :server-test:test
并收到错误:

SuperTest.groovy: 3: unable to resolve class com.data.server.MainServerApp
 @ line 3, column 1.
import com.data.server.MainServerApp

您能提出什么问题吗?

java spring-test
1个回答
0
投票

我找到了解决办法。 Spring上下文在当前模块中搜索Main类和application.yml。如果当前模块中缺少这些文件 - Spring 上下文会在其他模块中搜索它们并使用第一个可用的文件。 结果它找到了另一个 Main 类(不是 MainServerApp)。 要解决此问题,需要删除所有以前的主文件 或者为当前模块创建新的主类。

© www.soinside.com 2019 - 2024. All rights reserved.