2017-05-31 97 views
0

我想替換XML中的一些關鍵字(變量類型)。我們正在將Ant構建遷移到Gradle。其中一個文件是XML,其中包含一些關鍵字,如$ {FILE_ID},$ {GROUP_ID}。我需要閱讀這個XML文件並用實際值替換這些關鍵字。gradle - 替換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把它當作一個字符串?

謝謝。

回答

0

報價從Mr. Hakis Blog

如果我們使用雙引號的字符串,它包含了與$ {}表達式語法,我們有一個GString的一個Groovy的表達。

作爲上述的鏈路狀態,有幾種方式來聲明一個簡單String代替GString,例如簡單地使用單引號。另外,請注意,您的問題是由Groovy功能而不是由Gradle功能引起的。因此,${expression}語法不僅適用於Gradle(項目)屬性,而且適用於任何Groovy表達式。

0

最簡單的解決方案是在不希望發生替換的地方使用單引號。例如:

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