Gradle导出的属性不适用于Spring中的gradle bootRun

时间:2016-09-28 17:50:02

标签: java spring gradle spring-boot thymeleaf

在我的Spring Boot项目中,我在 gradle 中有以下片段,它将gradle属性导出到Spring Environment。

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

我的 application.properties 看起来像这样(摘录)

  

app.version = $ {jar.version}

效果很好。我可以使用 @value 在Spring课程中使用gradle propeties,甚至可以使用

在百万美元中访问它们

个:文本=" $ {@ 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]

我通过不使用processResources之类的方式来假设gradle的bootRun的工作方式是什么?

问题是:我怎样才能让它发挥作用。我不想放弃使用bootRun。

1 个答案:

答案 0 :(得分:2)

指定无法找到真实值时使用的默认值?

  <LinearLayout
        android:id="@+id/frontImage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:weightSum="2"
        >

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="0px"
            android:layout_weight="1"
            android:src="@mipmap/ic_launcher" />

    </LinearLayout>