2013-11-14 59 views
0

属性在我的剧本的gradle我已经能够成功地读取性能是这样的:init.gradle读取命令行

def environment = hasProperty('env') ? env : 'dev'

使用这个我可以执行构建脚本是这样的:

gradlew clean assemble -Penv=prod

我试过把这个文件移动到init.gradle的文件中。该文件被识别,我可以使用脚本中定义的其他属性,但是我无法从命令行获取任何内容。我怎样才能做到这一点?

init.gradle文件:

allprojects { 
    buildscript { 
     repositories { 
      mavenCentral() 
     } 
     dependencies { 
      classpath 'com.android.tools.build:gradle:0.6.+' 
     } 
    } 
    project.ext['nexusDomainName'] = 'https://example.com/nexus' 
    project.ext['compileSdkVersion'] = 19 
    project.ext['buildToolsVersion'] = "19" 
    project.ext['minSdkVersion'] = 8 
    project.ext['targetSdkVersion'] = 19 

    project.ext['sourceCompatibility'] = '1.7' 
    project.ext['targetCompatibility'] = '1.7' 

    //hasProperty('release') is always false 
    project.ext['archiveType'] = hasProperty('release') ? '' : '-SNAPSHOT' 
    project.ext['archiveUrl'] = hasProperty('release') ? "$nexusDomainName/content/repositories/releases/" : "$nexusDomainName/content/repositories/snapshots/" 


    // This buildEnv property won't read either 
    project.ext['buildEnv'] = hasProperty('env') ? env : 'dev' 
    println "prepping for $buildEnv" 
    project.ext['archivesBaseNameSuffix'] = (project.ext['buildEnv'] == 'stage' || project.ext['buildEnv'] == 'dev') ? '-' + project.ext['buildEnv'] : '' 

    repositories { 
     mavenLocal() 
     maven { 
      credentials { 
       username 'username' 
       password 'password' 
      } 
      url "$nexusDomainName/content/groups/public/" 
     } 
     mavenCentral() 
    } 
} 

回答

1

-P设置一个项目财产,这是不是在一个初始化脚本立即可用。 (您可以从初始化脚本访问项目及其属性,但该项访问将延迟至项目创建完成。)但是,使用系统属性(-D)应该可以工作。

+0

感谢您的快速回答! (抱歉我的延迟响应) – Sababado