gradle为gradle

时间:2015-07-30 08:45:43

标签: gradle

我想以类似于gradle.properties-D的方式在gradle中设置属性(例如来自settings.gradle)。有可能吗?

以下代码演示了我尝试做什么,但它不起作用:

import org.gradle.internal.os.OperatingSystem
def getArchitecture() {
    return System.getProperty("os.arch")
}

def getName() {
    if(OperatingSystem.current().isMacOsX()) {
        return "darwin"
    } else if(OperatingSystem.current().isLinux()) {
        return "linux"
    } else {
        throw Exception("The operating system you use is not supported.")
    }
}

allprojects {
    ext {
        // this variable has to be visible from all the projects 
        // and .gradle files in the same way as if it was set 
        // from gradle.properties file
        buildMachine = getName() + "_" + getArchitecture()
    }
}

修改

我希望在settings.gradle中定义此属性,并在所有其他.gradle文件中可见

EDIT2

我有很多构建机器,我不想指定变量buildMachine的值(在设置和其他.gradle文件中),我不希望它是通过-Pgradle.properties传递,因为它似乎可以完全在gradle中找出这个属性

1 个答案:

答案 0 :(得分:0)

您只需为rootProject设置此属性,然后在所有其他gradle脚本或子项目中设置该属性即可。

为清楚起见。.

在您的root build.gradle

trying to click iframe: n.fn.init [prevObject: n.fn.init(1), context: es-iframe-wrapper#esReportIframe.col-md-12, selector: "iframe iframe"]

和您的子项目中。.

ext { buildMachine = getName() + "_" + getArchitecture() }