2016-04-28 72 views
0

我想從gradle.properties獲得我的自定義插件類中的變量值。但我想在apply方法之外編寫和使用它。所以,我寫這樣的:Groovy:字段屬性被聲明多次

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 ..... 
    } 
} 

但是這給編譯錯誤:

Groovy:The field properties is declared multiple times

現在,如果我寫的申請方法裏面,那麼它的工作原理,但我需要在室外使用componentClass變量申請方法,所以我需要寫在外面。任何幫助將不勝感激。

回答

1

下面的代碼應該做的工作:

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

是的,這worked.I在想不同的東西。這個簡單的解決方案並沒有讓我想起。任何方式感謝您的幫助。 – sver