2015-10-19 207 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