我正在尝试扩展 gradle Android plugin的功能。关键是,我需要在一个构建中运行两次相同的任务(实际上是整个任务链,直到 connectedInstrumentTest),并且由于我无法仅使用 gradle 来管理如何执行此操作,所以我决定编写自己的插件将是对现有 Android 插件的扩展。所以,现在我正在尝试使用 Android 插件的功能,使用这样的 groovy 代码:
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")
}
那么,谁能告诉编译插件出了什么问题,或者如何在一次构建中两次使用任务?