gradle Android pluginの機能を拡張しようとしています。ポイントは、1 つのビルドで同じタスクを 2 回実行する必要があることです (実際には、connectedInstrumentTest までのタスクのチェーン全体)。gradle だけを使用してそれを行う方法を管理できなかったため、独自のプラグインを作成することにしました。既存の Android プラグインの拡張になります。だから、今私はそのようなグルーヴィーなコードを使って、私の中でAndroidプラグインの機能を使おうとしています:
void apply(Project project) {
project.plugins.apply(JavaPlugin.class)
project.plugins.apply(AndroidPlugin.class)
this.project = project
this.logger = project.logger
AndroidPlugin a = new AndroidPlugin()
a.apply(project)
しかし、それをコンパイルしようとすると、エラーが発生します。
インポート com.jvoegele.gradle.plugins.android.AndroidPlugin
私はそのような build.gradle を使用してプラグインをコンパイルしています:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.2'
}
}
apply plugin: 'groovy'
dependencies {
compile gradleApi()
compile localGroovy()
}
また、Groovy を初めて使用するので、メソッドのオーバーライドに問題があります。私はこれを試しましたが、うまくいかないようです:
MetaMethod proces = AndroidPackageTask.metaClass.pickMethod("process")
proces = {
println("ggggggg")
}
それで、プラグインのコンパイルの何が間違っているのか、または1回のビルド中にタスクを2回使用する方法を誰かが教えてもらえますか?