我正在尝试扩展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")
}
那么,任何人都可以告诉编译插件有什么问题,或者在一次构建期间如何使用两次任务?
答案 0 :(得分:1)
在同一版本中无法运行任务两次。您可以做的是创建具有相同类型和配置的两个任务(请注意,可以一次配置多个任务),或者(作为最后的手段)启动共享的两个嵌入式构建(任务类型GradleBuild
)构建脚本。