2016-09-28 62 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