2016-05-12 13 views
6

Jaka jest różnica między używaniem ext.varname i def varname. Na przykład. następujący kod wydaje się działać tak samo:Gradle def vs ext

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

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

wydaje się działać dokładnie tak samo jak

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

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

Odpowiedz

7

słowo def pochodzi z Groovy i oznacza, że ​​zmienna ma local zakresu.

Korzystanie ext.outDir oznacza, że ​​dodasz właściwość outDir do ExtraPropertiesExtension, myśleć o tym, jak projekt ma mapę właściwości z nazwą ext i umieścić swoją nieruchomość w tej mapie do późniejszego dostępu.