2015-10-19 208 views
0

我的应用程序具有嵌入式数据库作为“测试”依赖项(Maven测试),但是当您想要启动没有任何-D开关的应用程序时会导致出现异常,因为声明了jdbc驱动程序在application.yml中(见下文)。基于范围的弹簧默认配置文件选择

是否可以根据作用域(即运行时或测试)设置数据源?或者更好的是,你可以在没有任何-D开关的情况下更改默认配置文件(例如-Dspring.profiles.active = test)?

这可能看起来微不足道,但我们的团队感到困惑,因为您可以在IDE中成功运行测试,但是当您尝试“运行应用程序”时,除非您设置-D开关,否则失败。

datasource: 
    url: jdbc:h2 

spring: 
    profiles: profile1 

datasource: 
    url: jdbc:postgresql 

回答

1

如果你做检查只使用嵌入式数据库,那么你可以把一个application.properties(或.yml)在你把所有的属性在运行测试的文件夹src/test/resources/。至少,这对我的作品。因此,您不需要将生产属性放入配置文件中,并在运行应用程序时使用它们。

0
  1. 移动application.ymlsrc/test/resources/

  2. 您可以设置


    datasource.url=jdbc:h2 => 

    datasource: 
     url: jdbc:h2 
    --- 

    spring: 
     profiles: profile1 

    datasource: 
     url: jdbc:postgresql 
+0

默认的配置文件,我需要根据我是否运行测试或不那么设置默认的配置文件不幸的是,这是行不通的。您是否知道基于我是否正在运行测试或通常设置配置文件的方式? – Charlie