2017-02-27 51 views
0

我嘗試執行以下時工作:「-Drun.profiles = ..」是不是要執行春季啓動罐子

C:\Users\Homeuser>java -jar -Djasypt.encryptor.password=testpass -Drun.profiles.active=dev C:\testproj\target\test-0.0.1-SNAPSHOT.jar 

然而,在運行版本使用在指定的屬性如我所料,application-local.properties文件,而不是application-dev.properties文件。我知道這一點,因爲本地版本使用虛假數據的H2數據庫,而-dev配置文件使用真實數據連接到真實數據庫,我看到的是虛假數據。在我application.properties文件,我有以下設置:

spring.profiles.active=local

,當我第一次建立一個罐子,然後執行它這個問題只發生。當我使用從Eclipse中的Maven運行配置文件以下命令:

clean spring-boot:run -Drun.profiles=dev -Djasypt.encryptor.password=testpass

它正確地加載了預期的輪廓。我究竟做錯了什麼?

謝謝。

回答

2

財產run.profiles是來自spring-boot maven插件的財產。所以它只有在你使用它來運行你的應用程序時纔有效。如果要在使用jar命令時激活插件,請指定屬性spring.profiles.active=dev

+0

我試過'spring.profiles.active = dev'和'-spring.profiles.active = dev'。在第一種情況下,錯誤是'無法訪問jarfile spring.profiles.active = dev',在第二種情況下,這是一個致命的錯誤,稱它是一個無法識別的選項。 – ITWorker

+0

如果你想在命令行中設置屬性,它是'-Dspring.profiles.active = dev'(就像你對run.profiles所做的那樣)。 – dunni

+0

謝謝你,工作。 – ITWorker