如何在运行时转换包含 groovy 表达式的纯 java 字符串?
How to convert pure java String which includes groovy expression in runtime?
假设我们在 gradle.properties 文件中定义了包含 groovy 表达式的 属性 值:
databaseFile = ${System.properties['user.home']}/.derby
稍后当我想在 gradle 构建脚本中访问这个 属性 值时,
它似乎在 groovy 运行时作为纯 java 字符串加载,没有进行字符串评估。
在通过 gradle dsl 获取 属性 值之前,是否有任何方法可以帮助我评估纯 java 字符串?
或者我必须评估我在运行时得到的 java 字符串?但是怎么做呢?
谢谢~
假设:
databaseFile_unevaluated = '${System.properties[\'user.home\']}/.derby'
您可以使用 Eval
:
将其评估为 GString
databaseFile = Eval.me(""" "$databaseFile_unevaluated" """)
这也可以写成:
databaseFile = Eval.me("\"$databaseFile_unevaluated\"")
假设我们在 gradle.properties 文件中定义了包含 groovy 表达式的 属性 值:
databaseFile = ${System.properties['user.home']}/.derby
稍后当我想在 gradle 构建脚本中访问这个 属性 值时,
它似乎在 groovy 运行时作为纯 java 字符串加载,没有进行字符串评估。
在通过 gradle dsl 获取 属性 值之前,是否有任何方法可以帮助我评估纯 java 字符串?
或者我必须评估我在运行时得到的 java 字符串?但是怎么做呢?
谢谢~
假设:
databaseFile_unevaluated = '${System.properties[\'user.home\']}/.derby'
您可以使用 Eval
:
GString
databaseFile = Eval.me(""" "$databaseFile_unevaluated" """)
这也可以写成:
databaseFile = Eval.me("\"$databaseFile_unevaluated\"")