示例build.gradle
:
apply plugin: 'com.android.application'
android {
defaultConfig {
applicationId propAppcationId
}
}
我的插件:
public class AudioMaterialAppConstructorPlugin implements Plugin<Project> {
@Override
public void apply(Project project) {
Task constructAudioMaterialApp = project
.getTasks()
.create("constructAudioMaterialApp", ConstructAudioMaterialAppTask.class);
project.getTasks().getByName("preBuild").dependsOn(constructAudioMaterialApp);
}
}
我的自定义任务:
public class ConstructAudioMaterialAppTask extends DefaultTask {
@TaskAction
public void constructAudioMaterialApp() {
getProject().setProperty("propAppcationId", "demo.project.id");
}
}
我想在applicationId
之前更改build task
。正如你所看到的,我试图通过财产来做,但它不起作用。我该如何处理这个案子?
答案 0 :(得分:1)
它不起作用,因为在配置阶段解析配置,在执行阶段(之后)执行任务。
您可以在插件应用方法中添加属性作为替代方法。我认为它也应该在任务构造函数中工作,但我并非100%确定。