【问题标题】:GString inside a Gstring in gradle/groovygradle/groovy 中的 Gstring 中的 GString
【发布时间】:2016-03-29 14:23:08
【问题描述】:

我需要使用一个变量作为字符串的一部分,该字符串将用于寻址 gstring 中的另一个变量。
在syntesys,我想做的是:${${it}_checkout}

整个代码行将是:
def checkouts = repos.collect{"${it} = ${${it}_checkout} "}

repos 是要签出的存储库列表。
每个 repo 都有一个名为 <repo>_checkout 的属性。

例如,如果我有两个 repos,分别称为 foobar,我将有两个变量分别称为 foo_checkoutbar_checkout,其中包含要检出的分支。
我正在尝试构造以下字符串:“foo=$foo_checkout bar=$bar_checkout”。
那将被翻译成“foo=master bar=dev”

有办法吗?

【问题讨论】:

    标签: gradle groovy


    【解决方案1】:

    嗯,就这样吧:

    def checkouts = repos.collect{ "$it = ${it}_checkout" }
    

    或者,根据您声明属性的方式,您可以:

    root_checkout = 'woo'
    repo_checkout = 'yay'
    
    ['root', 'repo'].collect { r -> "$r = ${getProperty(r + '_checkout')}" }
    

    【讨论】:

    • 问题是我需要名为 ${it}_checkout 的变量的值。例如,如果我有一个名为 foo 的 repo,我将有一个名为 foo_checkout 的变量,其中包含要结帐的分支。我会更新问题以避免混淆
    • @PedroWitzel 更新了答案,希望它更接近?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多