Per sostituisce immobili a mia primavera Boot application.yml
ho aggiunto:Espansione application.yml durante Gradle processResources dà MissingPropertyException
processResources {
filesMatching("**/application.yml") {
expand(project.properties)
}
}
La sostituzione fallisce, ma dà un MissingPropertyException
:
Caused by: groovy.lang.MissingPropertyException: No such property: OPENSHIFT_MYSQL_DB_HOST for class: SimpleTemplateScript1
at SimpleTemplateScript1.run(SimpleTemplateScript1.groovy:49)
at org.gradle.api.internal.file.copy.FilterChain$3.transform(FilterChain.java:95)
at org.gradle.api.internal.file.copy.FilterChain$3.transform(FilterChain.java:84)
at org.gradle.api.internal.ChainingTransformer.transform(ChainingTransformer.java:37)
at org.gradle.api.internal.file.copy.FilterChain.transform(FilterChain.java:39)
at org.gradle.api.internal.file.copy.FilterChain.transform(FilterChain.java:46)
at org.gradle.api.internal.file.copy.DefaultFileCopyDetails.open(DefaultFileCopyDetails.java:86)
at org.gradle.api.internal.file.AbstractFileTreeElement.copyTo(AbstractFileTreeElement.java:56)
at org.gradle.api.internal.file.copy.DefaultFileCopyDetails.copyTo(DefaultFileCopyDetails.java:94)
at org.gradle.api.internal.file.AbstractFileTreeElement.copyFile(AbstractFileTreeElement.java:93)
at org.gradle.api.internal.file.AbstractFileTreeElement.copyTo(AbstractFileTreeElement.java:74)
... 81 more
Originariamente il mio application.yml
contenuto:
url: jdbc:mysql://${OPENSHIFT_MYSQL_DB_HOST}:${OPENSHIFT_MYSQL_DB_PORT}/${OPENSHIFT_APP_NAME}
Nota Queste variabili di Openshift sono conosciute solo nell'ambiente di produzione Openshift ma non quando sono eseguite localmente in modalità dev.
Come indicato sul http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.Copy.html: You can also include arbitrary Groovy code in the file, such as ${version ?: 'unknown'}
così ho cambiato la mia application.yml
a:
url: jdbc:mysql://${OPENSHIFT_MYSQL_DB_HOST ?: ''}:${OPENSHIFT_MYSQL_DB_PORT ?: ''}/${OPENSHIFT_APP_NAME ?: ''}
Ma questo dà lo stesso MissingPropertyException
. Mi manca qualcosa qui?
Se si esegue una 'proprietà gradle', è possibile visualizzare le variabili OPENSHIFT nell'elenco? –
No, non lo è. È stato runtime risolto utilizzando i segnaposto delle proprietà Spring Boot come documentato qui: http://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html –
Ora vedo anche la nota nei documenti che per i plugin-risorse-maven il segnaposto predefinito '$ {*}' è cambiato in '@ * @'. Mi chiedo come funzioni per le risorse di processo gradle. Sembra essere associato a Spring Boot e non Gradle. –