2016-09-28 7 views
0

in meinem Spring Boot Projekt habe ich das folgende Fragment in Gradle, die Gradle Eigenschaften zu Spring Environment exportiert.Gradle exportierte Eigenschaften arbeiten nicht mit Gradle BootRun im Frühjahr

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

Mein application.properties sieht wie folgt aus (Snippet)

app.version = $ {} jar.version

funktioniert ziemlich gut. Ich kann mit @value mit dem gradle propeties im Frühjahr Klassen arbeiten und sie sogar in thymeleaf mit

th zugreifen: text = "$ {@ environment.getProperty ('app.version')}

Aber jetzt das Problem. Wenn ich das gleiche Projekt mit „gradle bootRun“ betreibe ich das bin immer:

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] 

ich nehme an, es ist etwas über die bootRun Weg gradle wirkt, indem es nicht processResources oder etwas ähnliches verwenden?

Die Frage wäre: Wie kann ich das zum Laufen bringen? Ich möchte nicht mit BootRun aufgeben.

+0

sah nur, dass seine hier github.com/spring-projects/spring-boot/issues/1739 erklärt, kann aber nicht jede Lösung für mein Problem sehen. Es macht mir nichts aus, wenn diese Werte nicht in bootRun angezeigt werden, aber meine Anwendung sollte mindestens ausgeführt werden. – Marc

Antwort

1

Einen Standardwert angeben, der verwendet werden soll, wenn der echte nicht gefunden werden kann?

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

das ist ok für $ Value in Java-Klassen, löst aber nicht mein Problem mit th: text = "$ {@ environment.getProperty ('app.version')}, aber ich kann dieses Problem umgehen. Danke. – Marc

Verwandte Themen