我想在Java中解析一个Android应用程序的build.gradle文件,我正在尝试使用Groovy CodeVistorSupport,如下所示:
public class parseBuildGradle extends CodeVisitorSupport{
@Override
public void visitMethodCallExpression(MethodCallExpression call)
{
//My code
}
}
为了使用这个类,我假设我应该以某种方式获得编译单元或ast,然后调用该类。但是,我不确定我应该使用哪些API,不幸的是我找不到任何相关文档。我想知道是否有人可以帮助我。
答案 0 :(得分:2)
以下是我的问题的可能答案:
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);
}
}