Gradle 从文件中渐变加载属性并在liquibase任务中使用
我正在尝试加载属性并在liquibase任务中使用它。我能够加载属性并将其打印出来。但当我在liquibase任务中使用它时,gradle抱怨没有找到属性 我正在使用:Gradle 从文件中渐变加载属性并在liquibase任务中使用,gradle,liquibase,Gradle,Liquibase,我正在尝试加载属性并在liquibase任务中使用它。我能够加载属性并将其打印出来。但当我在liquibase任务中使用它时,gradle抱怨没有找到属性 我正在使用: classpath 'org.liquibase:liquibase-gradle-plugin:1.1.0' 加载特性: def springApplicationProperties = "src/main/resources/application-${System.env.SPRING_PROFILES_ACTIVE}
classpath 'org.liquibase:liquibase-gradle-plugin:1.1.0'
加载特性:
def springApplicationProperties = "src/main/resources/application-${System.env.SPRING_PROFILES_ACTIVE}.properties"
def springProps = new Properties()
InputStream is = new FileInputStream("${springApplicationProperties}")
springProps.load(is)
println "${springProps['spring.datasource.url']}"
液化块:
liquibase{
activities {
main {
changeLogFile 'src/main/database/changelog.groovy'
url ${springProps['spring.datasource.url']}
username ${springProps['spring.datasource.user']}
password ${springProps['spring.datasource.password']}
}
}
runList = 'main'
}
我越来越
没有此类属性:$springProps for class:
org.liquibase.gradle.Activity
看起来springProps在liquibase活动中不可见。我尝试使用ext和projectscope,它们在liquibase块中都不可见 它将以这种方式工作:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.liquibase:liquibase-gradle-plugin:1.1.0'
}
}
apply plugin: 'java'
apply plugin: 'org.liquibase.gradle'
ext.springProps = new Properties()
InputStream is = new FileInputStream("src/main/resources/lol.properties")
springProps.load(is)
liquibase {
activities {
main {
url springProps['spring.datasource.url']
username springProps['spring.datasource.user']
password springProps['spring.datasource.password']
}
}
runList = 'main'
}
您不必要地添加了
${}
。我在试用时对脚本做了一些修改,但没有副作用。谢谢@Opal,它工作得很好。那么,什么时候使用${}?什么时候不使用?如果值的类型为字符串
,则需要使用“${value}”
(将作为GString进行计算),或者只使用值
。还可以尝试使用GString
,看看它是否有效。