2016-09-28 74 views
0

在我的Spring Boot項目中我有以下片段gradle它將gradle屬性導出到Spring Environment。Gradle導出的屬性不工作與Spring中的gradle bootRun

processResources { 
    filesMatching("**/application.properties") { 
     expand(project.properties) 
    } 
} 

application.properties看起來是這樣的(片段)

app.version = $ {} jar.version

工作得很好。我可以在Spring類的gradle這個化子性質的工作與@value,甚至可以訪問他們thymeleaf與

日:文本=「$ {@ environment.getProperty( 'app.version')}

但現在的問題:當我運行「gradle這個bootRun」同一個項目我得到這個:

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'jar.version' in string value "${jar.version}" 
     at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174) ~[spring-core-4.3.3.RELEASE.jar:4.3.3.RELEASE] 

我認爲它的一些關於gradle產出的方式bootRun的工作原理是不使用processResources或類似的東西?

問題是:我如何得到這個工作。我不想放棄使用bootRun。

+0

剛纔看到它在這裏解釋github.com/spring-projects/spring-boot/issues/1739,但不能看到我的問題的任何解決方案。我不介意這些值不顯示在bootRun中,但我的應用程序應該至少運行。 – Marc

回答

1

指定一個默認值,以便在找不到真正的值時使用?

@Value("${...:defaultValue}") 
+0

這對於在java類中的$ Value是好的,但並不能解決我與th:text =「$ {@ environment.getProperty('app.version')}的問題,但是我可以解決這個問題。 – Marc