java - 如何在运行时转换包含groovy表达式的纯java字符串?

标签 java groovy gradle

假设我们在 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\"")

关于java - 如何在运行时转换包含groovy表达式的纯java字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31401537/

相关文章:

java - Java 中流关闭模式的变体

Java 是否用 null 初始化变量?

android - Groovy调用adb命令来提取文件,但是新文件不可见

java - Logback Groovy 配置速度慢

android - 如何使用全局本地 gradle 安装而不是每次都下载压缩包装?

java - EasyMock/Arrays.asList(...) 只有一个 varagrs 参数

java - 比较两个arrayList,得到最长的匹配String

grails - 我如何将日期格式化为来自 <g :select> 中的数据库的指定格式

java - 如何修复使用 android Studio 3.5 和 3.5.0 gradle 编译的 Android Annotations 4.6.0

gradle - Gradle-为特定项目设置特定的JAVA_HOME