当我从 Eclipse (STS) 作为“Java 应用程序”或“Spring Boot App”运行 Spring Boot 应用程序时,该应用程序失败,因为它尝试从 加载配置 (@Configuration) |测试类路径 .
问题是它适用于基于 maven 的构建正确,但不适用于 gradle。
我看到的唯一解决方法是将测试包重命名为其他名称以将其隐藏在类路径扫描中。
总的来说,问题是 - 如何使其正常工作?我假设 SpringToolSuite 团队每天都会遇到这个问题,或者我做错了什么。
这是一个测试项目,当作为 maven 导入时可以工作,但在作为 gradle 导入时失败:https://github.com/mabn/spring-boot-integration-test
我正在使用 STS 3.7.1
最佳答案
The thing is that it works for maven based builds correctly, but not for 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 应用程序”)。但是,该修复是特定于 Maven 的,因为在解决此 Gradle tooling-api 问题票证之前,gradle 案例无法真正修复:
https://issues.gradle.org/browse/GRADLE-1777
关于eclipse - 从 eclipse+gradle 运行时,Spring Boot 错误地加载了测试配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33817251/