2016-04-28 11 views
0

Ich möchte den Wert einer Variablen in meiner benutzerdefinierten Plug-in-Klasse von gradle.properties erhalten. Aber ich möchte es außerhalb der apply Methode schreiben und verwenden. Also, ich so schreibe:Groovy: Die Feldeigenschaften werden mehrfach deklariert

class VCPlugin implements Plugin<Project> { 

    private Project project 

    private Properties properties 
    properties = new Properties() 
    properties.load(project.rootProject.file('gradle.properties').newDataInputStream()) 
    def componentClass = properties.getProperty('componentClass') 

    @Override 
    void apply(Project project) { 
     //applying distribution plugin 
     this.project = project ..... 
    } 
} 

Aber das gibt kompilieren Fehler:

Groovy:The field properties is declared multiple times

Nun, wenn ich es in der Methode anwenden zu schreiben, dann funktioniert es, aber ich brauche componentClass Variable verwenden außerhalb die Methode apply, also muss ich dies außerhalb schreiben. Jede Hilfe wird geschätzt.

Antwort

1

Im Folgenden Code sollte die Arbeit machen:

class VCPlugin implements Plugin<Project> { 

    private Project project 
    private Properties properties 
    private String componentClass 

    @Override 
    void apply(Project project) { 
    this.project = project 
    this.properties = new Properties() 
    properties.load (project.rootProject.file('gradle.properties').newDataInputStream()) 
    this.componentClass = this.properties.getProperty('componentClass') 
    } 
} 
+0

Ja, das worked.I dachte etwas anderes. Diese einfache Lösung kam mir nicht in den Sinn. Irgendwelche Möglichkeiten, danke für die Hilfe. – sver

Verwandte Themen