【问题标题】:init.gradle read properties from command lineinit.gradle 从命令行读取属性
【发布时间】:2013-11-14 16:38:48
【问题描述】:

在我的 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()
    }
}

【问题讨论】:

    标签: java properties gradle init


    【解决方案1】:

    -P 设置一个 project 属性,该属性在初始化脚本中不会立即可用。 (您可以从 init 脚本访问项目及其属性,但该访问将推迟到项目创建完成。)但是,使用 system 属性 (-D) 应该可以工作。

    【讨论】:

    • 感谢您的快速回答! (抱歉我的延迟回复)
    猜你喜欢
    • 2014-12-15
    • 2014-07-11
    • 2018-04-26
    • 2014-06-09
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多