如何在Groovy中以编程方式更改Groovy/Gradle文件?

如何在Groovy中以编程方式更改Groovy/Gradle文件?,groovy,gradle,Groovy,Gradle,我的目标是以编程方式修改Android build.gradle文件。我想在特定行上添加一个插件,然后在特定的依赖项-部分中添加一个依赖项 我的问题是Groovy是否包含自己语言的解析器?如何以编程方式轻松修改build.gradle文件(或任何Groovy文件) 当然,通过编程修改groovy文件并不容易。也有类似内置AST解析器或配置slurper的解析器,但返回代码并不容易。所有这些解析器不仅会丢弃格式,还会丢弃注释。结果的来源不是您所期望的 Grails插件通常也有同样的问题。解决方案是

我的目标是以编程方式修改Android build.gradle文件。我想在特定行上添加一个插件,然后在特定的
依赖项
-部分中添加一个依赖项


我的问题是Groovy是否包含自己语言的解析器?如何以编程方式轻松修改build.gradle文件(或任何Groovy文件)

当然,通过编程修改groovy文件并不容易。也有类似内置AST解析器或配置slurper的解析器,但返回代码并不容易。所有这些解析器不仅会丢弃格式,还会丢弃注释。结果的来源不是您所期望的


Grails插件通常也有同样的问题。解决方案是使用正则表达式来更改代码或完全避免更改代码(添加额外的配置,而不是更改原始配置)。

看看groovyConsole的源代码。控制台有一个选项可以显示源代码的ast(抽象语法树)。但是不要指望这是一个简单的解决你问题的方法:-)谢谢。。但是没有办法从AST返回到源代码,是吗?(我只是略读了一下)不容易。至少,您现在知道hrails包含自己的解析器:-(我会小心地说“正则表达式就是解决方案”,但我喜欢您的提示,即通过添加额外的配置来避免更改代码。我意识到Gradle是灵活的,因为您可以多次定义,即
依赖项
-部分。如果这是一个选项,我想这是解决我的具体问题的最佳方法,在build.Gradle文件的末尾添加一些行,忽略其中最初的内容。可能不适用于每个用例,但对我有效,因此我是ac接受你的答案;)