2016-12-09 2 views
2

私はJavaでAndroidアプリのbuild.gradleファイルを解析したいと私は次のようにそのためのGroovy CodeVistorSupportを使用しようとしています:グラデーションスクリプトの解析時にGroovy CodeVisitorSupport訪問者クラスを使用するには?

public class parseBuildGradle extends CodeVisitorSupport{ 
    @Override 
    public void visitMethodCallExpression(MethodCallExpression call) 
    { 
     //My code 
    } 
} 

このクラスを使用するためには、私は私が何とか取得する必要仮定コンパイルユニットまたはastを呼び出し、クラスを呼び出します。しかし、私はどのAPIを使用すべきか、そして残念なことに関連するドキュメンテーションを見つけることができませんでした。誰かがそれを手伝ってくれるのだろうかと思っています。以下は

答えて

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); 
    } 
} 
+0

あなたはあなた自身の答えを受け入れることができます! このコードを実行できるように、私のプロジェクトでどのライブラリを使用する必要がありますか? Mavenは座標を合わせますか? – sebkur

+0

ちょうど見つかった: 'org.codehaus.groovy:groovy:2.4.9' – sebkur

関連する問題