在Eclipse中运行时,Spring启动应用程序运行不一致

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

我观察到在Eclipse中读取属性的方式不一致。我有一个非常简单的Springboot Web项目,它包含典型的属性文件。这是我的项目布局:

enter image description here

请注意两个属性文件:testapplication.properties和application.properties。它们在这一点上是相同的,目的是将它们用于测试和非测试环境。

当我尝试在Eclipse中运行此应用程序时,我收到有关缺少预期属性值的错误,例如:无法在值“$ {min.thread.count}”中解析占位符'min.thread.count'

当我使用gradle的bootRun任务运行相同的设置时,它工作正常。

当我在IntelliJ中运行相同的设置时,它工作正常。

如果我将testapplication.properties重命名为application.properties,那么应用程序在Eclipse中运行良好。因此它使用属性表单测试文件夹。

另外,我很确定当我今天早上启动Eclipse时,我能够使用正确的application.properties和testapplication.properties文件运行应用程序。我正在进行单元测试并将testapplication.properties重命名为application.properties,做了一些工作,然后将其重命名为testapplication.properties,应用程序拒绝启动。我试图复制它:用两个不同的属性文件(应用程序和测试应用程序)关闭eclipse,再次启动它并运行应用程序。但是,此刻我有同样的问题(抱怨遗失物业价值)。

正如你可以看到这种奇怪的行为。目前我发现我不能使用Eclipse,因为我不确定它会做什么。我已切换到InteliJ的社区版,因为它似乎正常工作。但作为Eclipse的长期粉丝我很伤心:)

有没有人有任何线索可能导致这种情况?

编辑:我在我的测试项目中签到了:分支PropertyFileIssue中的https://github.com/twolak2003/CamelSpringBootEureka.git。只需克隆,切换到PropertyFileIssue分支,导入eclipse作为gradle项目。

这是一个简单的vanilla spring云启动项目,运行eureka服务器和eureka客户端。出于本期目的,我们将专注于eureka服务。

我正在使用最新的Eclipse Oxygen。我在Eclipse Neon中注意到了同样的问题。我切换到氧气,希望问题会消失。只有插件才是Spring IDE。使用Java 8来运行它。

测试1:启动EurekaService / src / main / hello.java作为Java应用程序。它开始很好,将读取src / main / resources / application.property文件。

测试2:将EurekaService / src / main / test / resources / restapplication.properties重命名为EurekaService / src / main / test / resources / application.properties。再次启动EurekaService应用程序。 调查结果:它也可以正常运行但它在/ src / test / resources中使用属性文件。这对我来说也是问题,它不应该使用/ test /来运行应用程序。

测试3:现在再次将/src/test/resources/application.properties重命名为/src/test/resources/testapplication.properties。 (这是test1的重复)。再次运行EurekaService / src / main / hello作为java应用程序。发现尽管这是test1的重复,但测试失败的原因是“无法解决占位符'tomek.prop'的值”$ {tomek.prop}“”。

我做的事情真是愚蠢还是有问题?现在心情沉重,我转而使用InteliJ来保持我的项目。 Eclipse的行为对我来说太难以预测了:#

spring eclipse spring-boot spring-boot-test
1个回答
0
投票

到目前为止,除了停止使用Eclipse之外,我没有正确的答案:)。但有解决方法。

不要使用多个application.property文件。

如果需要测试属性来覆盖实际属性,则将文件命名为“application.property”。否则,您将获得不可预测的行为,并且您的Eclipse运行时变得困惑。

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