【问题标题】:gradle - replace text inside the XML filegradle - 替换 XML 文件中的文本
【发布时间】:2017-05-31 19:17:37
【问题描述】:

我想替换 XML 中的一些关键字(变量种类)。我们正在将 Ant 构建迁移到 Gradle。其中一个文件是 XML,其中包含一些关键字,例如 ${FILE_ID}、${GROUP_ID}。我需要阅读这个 XML 文件并将这些关键字替换为实际值。

def dest = file("pom/module-pom.xml")
def text = new File('pom/dependencies.pom').text
text = text.replaceAll("${GROUP_ID}", "${groupId}")
dest.write(text, "UTF-8")

问题在于 Gradle 将 '${GROUP_ID}' 识别为 gradle 属性。有没有办法让 Gradle 将其视为字符串?

谢谢。

【问题讨论】:

    标签: gradle build.gradle


    【解决方案1】:

    最简单的解决方案是在不希望发生替换的地方使用单引号。例如:

    text.replaceAll('${GROUP_ID}', groupId)

    【讨论】:

      【解决方案2】:

      引用Mr. Hakis Blog:

      如果我们使用双引号字符串,并且它包含一个具有 ${expression} 语法的 Groovy 表达式,我们就有一个 GString。

      如上述链接所述,有几种方法可以声明一个简单的 String 而不是 GString,例如简单地使用单引号。另外,请注意,您的问题是由 Groovy 功能​​而不是 Gradle 功能引起的。因此,${expression} 语法不仅适用于 Gradle(项目)属性,也适用于任何 Groovy 表达式。

      【讨论】:

        猜你喜欢
        • 2021-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-16
        • 1970-01-01
        • 2021-01-28
        • 1970-01-01
        • 2015-10-31
        相关资源
        最近更新 更多