2016-05-01 11 views
0

Beispiel:Wie ändert man die Konfiguration mit dem Gradle Plugin? <code>build.gradle</code>

apply plugin: 'com.android.application' 

android { 
    defaultConfig { 
     applicationId propAppcationId 
    } 
} 

Mein Plugin:

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); 
    } 
} 

Meine benutzerdefinierte Aufgabe:

public class ConstructAudioMaterialAppTask extends DefaultTask { 

    @TaskAction 
    public void constructAudioMaterialApp() { 
     getProject().setProperty("propAppcationId", "demo.project.id"); 
    } 

} 

Ich möchte applicationId vor build task ändern. Wie Sie sehen können, habe ich versucht, es über die Eigenschaft zu tun, aber es funktioniert nicht. Wie kann ich diesen Fall verwalten?

Antwort

1

Es funktioniert nicht, da die Konfiguration während der Konfigurationsphase aufgelöst wird und die Task während der Ausführungsphase (nach) ausgeführt wird.

Sie können Eigenschaft in plugin apply-Methode als eine Alternative hinzufügen. Ich denke es sollte auch im Task Constructor funktionieren, aber ich bin mir nicht 100% sicher.

+1

Danke! Ich habe die 'apply' Methode des Plugins benutzt und es funktioniert:' @Override public void apply (Projekt Projekt) { project.setProperty ("propAppcationId", "demo.project.id"); } ' – Alexandr

Verwandte Themen