2016-05-12 14 views
6

Qual è la differenza tra l'utilizzo di ext.varname e def varname. Per esempio. il seguente codice sembra funzionare lo stesso:Gradle def vs ext

task copyLicenses { 
    def outDir = project.buildDir.absolutePath + '/reports/license/' 

    doLast { 
     copy { 
      from 'licenses' 
      into outDir 
      include '*' 
     } 

sembra funzionare esattamente come

task copyLicenses { 
    ext.outDir = project.buildDir.absolutePath + '/reports/license/' 

    doLast { 
     copy { 
      from 'licenses' 
      into outDir 
      include '*' 
     } 

risposta

7

Chiave def proviene da Groovy e significa che variabile ha local portata.

Utilizzando ext.outDir significa che si aggiungono proprietà outDir a ExtraPropertiesExtension, pensa di esso come progetto ha una mappa di proprietà con nome ext, e si mette la vostra proprietà in questa mappa per l'accesso in seguito.

Problemi correlati