我想用 Java 解析 android 应用程序的 build.gradle 文件,我正在尝试使用 Groovy CodeVistorSupport 来实现它,如下所示:
public class parseBuildGradle extends CodeVisitorSupport{
@Override
public void visitMethodCallExpression(MethodCallExpression call)
{
//My code
}
}
为了使用这个类,我假设我应该以某种方式获取编译单元或 ast,然后调用这个类。但是,我不确定应该使用哪些 API,不幸的是我找不到任何相关文档。我想知道是否有人可以帮助我。
最佳答案
以下是我的问题的可能答案:
SourceUnit unit = SourceUnit.create("gradle", gradleFileToString);
unit.parse();
unit.completePhase();
unit.convert();
visitScriptCode(unit, new parseBuildGradle());
private void visitScriptCode(SourceUnit source, GroovyCodeVisitor transformer) {
source.getAST().getStatementBlock().visit(transformer);
for (Object method : source.getAST().getMethods()) {
MethodNode methodNode = (MethodNode) method;
methodNode.getCode().visit(transformer);
}
}
关于gradle - 解析 gradle 脚本时如何使用 Groovy CodeVisitorSupport 访问者类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41069445/