从eclipse+gradle运行时,Spring Boot错误地加载了测试配置



当我从Eclipse(STS)以"Java应用程序"或"Spring Boot应用程序"运行Spring Boot时,该应用程序会失败,因为它试图从测试类路径加载配置(@Configuration)

问题是,它正确地适用于基于maven的构建,但不适用于gradle。

我看到的唯一解决方法是将测试包重命名为其他东西,以将其隐藏在类路径扫描中。

总的来说,问题是——如何使其正常工作?我认为SpringToolSuite团队每天都会遇到这个问题,或者我做错了什么。

以下是一个测试项目,当作为maven导入时可以工作,但当作为gradle导入时失败:https://github.com/mabn/spring-boot-integration-test

  • 这是一个由来已久的STS问题——它仍然相关吗
  • 这是另一个标记为已解决的
  • 关于maven项目的类似问题

我使用的是STS 3.7.1

问题是,它正确地适用于基于maven的构建,但不适用于gradle。

是的,不幸的是事实确实如此。Gradle根本无法正确配置eclipse的运行时类路径。Gradle自己的新BuildShip eclipse插件也是如此。

请参阅我最近提出的这个问题:https://bugs.eclipse.org/bugs/show_bug.cgi?id=482315

您发现的已解决的错误确实得到了解决,但它只涉及maven/m2e情况,事实上它是可以修复的(m2e对"Run As>>Java Project"进行了纠正,我们对"Run As>>Spring Boot App"采用了类似的修复)。然而,该修复是特定于专家的,因为在这个gradle工具api问题票据得到解决之前,gradle情况并不能真正修复:

https://issues.gradle.org/browse/GRADLE-1777

为此,我不得不引入带有配置文件的分离。所有测试标记@ActiveProfiles("srv-test")和带有@Profile({"local", "docker"}) 的主配置

最新更新