如何通过gradle插件修改配置?

时间:2016-05-01 17:57:31

标签: android gradle android-gradle

示例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。正如你所看到的,我试图通过财产来做,但它不起作用。我该如何处理这个案子?

1 个答案:

答案 0 :(得分:1)

它不起作用,因为在配置阶段解析配置,在执行阶段(之后)执行任务。

您可以在插件应用方法中添加属性作为替代方法。我认为它也应该在任务构造函数中工作,但我并非100%确定。