現在、構築ツールとしてgradleを使用してKotlin
、Spring Boot
サービスを構築中です。私は、自動的に私のapplication.properties
ファイルで検出されたプロパティを拡張しようとここに見つけるの手順を使用しています:kotlin/springブートでのGradleプロパティ展開の使用
次のように私のバージョンは以下のとおりです。
- kotlin: 1.1.4-3
- spring boot: 1.5.6.RELEASE
- gradle: 3.5.1
私は./gradlew bootRun
を実行すると、私が手次のエラー:
java.lang.IllegalArgumentException: Could not resolve placeholder 'myServiceName' in value "${myServiceName}"
が続く:
java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: org.springframework.boot[email protected]510aeb93: startup date [Fri Sep 15 10:59:51 AEST 2017]; parent: org.spring[email protected]68edf5bb
build.gradle:
apply plugin: 'kotlin'
apply plugin: 'kotlin-spring'
apply plugin: 'org.springframework.boot'
processResources {
filesMatching('application.properties') {
expand(project.properties)
}
}
gradle.properties:
myServiceName=potato-service
application.properties:
info.app.name=${myServiceName}
これらのエラーは、アプリケーションの起動後に表示され、Springはプロパティファイルを読み込もうとしています。
興味深いのは、私がapplication.propertiesに代入しようとしている変数をmyServiceName123
に変更すると、gradleがprocessResourcesステージで失敗するということです。 addResourcesフラグは無視されますtrueに設定した
bootRun {
addResources = true
}
をSpring Boot Docsによると: