2017-08-10 47 views
0

我正在嘗試讀取pom.xml的值並將其注入到application.properties中。但我無法做到這一點。 在我的pom.xml中,我有一個像下面的屬性值:在application.properties中使用pom.xml的屬性值

<properties> 
    <app.mobile.db.host> 
     ${env.APP_MOBILE_DB_HOST} 
    </app.mobile.db.host> 
... 
</properties> 

而且,APP_MOBILE_DB_HOST從.m2目錄文件夾中的settings.xml的到來。 我還在pom.xml中添加了以下幾行。

<build> 
    <resources> 
     <resource> 
     <filtering>true</filtering> 
     <directory>src/main/resources</directory> 
     </resource> 
    </resources> 
.... 

在application.properties我訪問像

app.host= @[email protected] 

,春季啓動我使用@ConfigurationProperties來讀取application.properties值。 但是,當我打印它時,它只是打印@ app.mobile.db.host @。 我哪裏錯了?請幫助。

回答

0

@只適用於如果您使用spring-boot-starter-parent。此外,如果您希望價值來自settings.xml,則不應在您的pom.xml中重新定義它。最後,env.x語法是針對環境變量的;從pom中刪除該行並將application.properties更改爲app.host = @[email protected]應解決該問題。如果您絕對必須爲APP_MOBILE_DB_HOST創建別名,請在pom.xml中將其定義爲app.host=${APP_MOBILE_DB_HOST},儘管我不確定Maven是否爲屬性解析執行了多次傳遞。

通過運行mvn resources:resources -DAPP_MOBILE_DB_HOST=test並檢查target/classes/application.properties來驗證您的更改。您不需要運行該應用程序。

+0

我刪除了env.x行表單pom.xml。而在'application.properties'中,我正在讀取像'app.host = $ {APP_MOBILE_DB_HOST}'這樣的值。它仍然沒有工作。在settings.xml中,屬性如下所示 ' XXX' –

+0

@ ninja.bhaSiv再次閱讀,這不是我所說的。如果你不能遵循這些簡單的指示,那麼我不能幫你,對不起。 –

+0

對不起,我感到困惑。我在pom.xml中添加了'spring-boot-starter-parent'。然後刪除'env.x'行。並且在'application.properties'中以'app.host = @ APP_MOBILE_DB_HOST @'的身份訪問它。但它沒有提取值 –

相關問題