2016-12-14 18 views
0

カスタムプラグイン(またはタスク)では、コンパイル済みのクラス(最後のコンパイル時に変更されたもの)をクラスローダーで読み込み、リフレクションを使用できるようにしますそれらの上に。Gradleカスタムプラグイン:コンパイル済みJavaクラスの読み込み

これは可能ですか?

1)Javaクラスがコンパイルされた直後に私がそれを読むことができるように料理をするのはすばらしいことですが、これを行う方法は見つけられませんでした。

2)私はこのような何かを考えています...のGradleスクリプトgetClass().getClassloader()

compileJava.doLast { 
    ClassLoader parent = getClass().getClassLoader(); 
    GroovyClassLoader loader = new GroovyClassLoader(parent); 


    // retrieve all class files 
    // for each class file, loader.parseClass(classFile) 
} 

答えて

0

はあなたのGradleスクリプトのクラスローダを取得します。これにはコンパイルされたクラスやコンパイル/ランタイム・ジャーが含まれません。あなただけがincremental task

であることを行う行うことをお勧めされている変更されたクラスに基づいて行動したい場合は

Collection<URL> urls = sourceSets.main.runtimeClasspath.files.collect { it.toURI().toURL() } 
Classloader parent = new URLClassLoader(urls.toArray()); 

:私はあなたに似た何かをしたいと思います

関連する問題