在gradle / groovy中的Gstring中的GString

时间:2016-03-29 14:23:09

标签: gradle groovy

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

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

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

例如,如果我有两个名为foobar的回购,我会有两个名为foo_checkoutbar_checkout的变量,其中包含分支到检查。
我试图构造以下字符串:&#34; foo = $ foo_checkout bar = $ bar_checkout&#34;。
这将被翻译为&#34; foo = master bar = dev&#34;

有办法吗?

1 个答案:

答案 0 :(得分:1)

是的,只是这样做:

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

或者,根据您声明属性的方式,您可以执行以下操作:

root_checkout = 'woo'
repo_checkout = 'yay'

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